Abstract
We sketch a method for deduction-oriented software and system development. The method incorporates formal machine-supported specification and verification as activities in software and systems development. We describe experiences in applying this method. These experiences have been gained by using the LP, the Larch proof assistant, as a tool for a number of small and medium size case studies for the formal development of software and systems. LP is used for the verification of the development steps. These case studies include
-
• quicksort
-
• the majority vote problem
-
• code generation by a compiler and its correctness
-
• an interactive queue and its refinement into a network.
The developments range over levels of requirement specifications, designs and abstract implementations. The main issues are questions of a development method and how to make good use of a formal tool like LP in a goal-directed way within the development. We further discuss the value of advanced specification techniques, most of which are deliberately not supported by LP and its notation, and their significance in development, Furthermore, we discuss issues of enhancement of a support system like LP and the value and the practicability of using formal techniques such as specification and verification in the development process in practice.
Similar content being viewed by others
References
J.W. de Bakker, W.-P. de Roever, and G. Rozenberg (Eds.),Stepwise Refinement of Distributed Systems, Lecture Notes in Computer Science 430, Springer 1990.
W.R.Bevier, “Kit and the short stack,”Journal of Automated Reasoning, Vol 5, pp. 519–530, 1989.
B. Boyer and J. Moore, “MJRTY: A fast majority algorithm,” Unpublished.
M.Broy, “Views of queues,”Science of Computer Programming, Vol. 11, pp. 65–88, 1988.
M. Broy, “Functional specification of time sensitive communicating systems,”REX Workshop, in [1]. pp. 153–179.
M. Broy,Experiences with Software Specification and Verification Using LP, The Larch Proof Assistant, Digital Systems Research Center, SRC Report 93, November 1992.
M. Broy,Algebraic Methods for Program Construction, The Project CIP. SOFSEM 82, also in, P. Pepper (Ed.),Program Transformation and Programming Environments, NATO ASI Series, Series F: 8, Berlin-Heidelberg-New York-Tokyo, Springer, pp. 199–222, 1984.
L. Cardelli and P. Wegner, “On understanding types, data abstraction, and polymorphism,”ACM Computing Survey, pp. 471–523, 1985.
L.Cardelli, “Basic polymorphic typechecking,”Science of Computer Programming, Vol. 8, pp. 147–172, 1987.
U. Fraus and H. Hußmann, “A narrowing-based theorem prover (extended abstract),” in4th International Conference on Rewriting Techniques and Applications (RTA), Como, Italy, Lecture Notes in Computer Science, Vol. 488, Springer-Verlag 1991, pp. 435–436.
S.J. Garland and J.V. Guttag,An Overview of LP, The Larch Prover, Lecture Notes in Computer Science, Vol. 355, pp. 137–151, 1986.
S.J. Garland, J. V. Guttag, and J.J. Horning,Debugging Larch Shared Language Specifications, Digital Systems Research Center, SRC Report, 60, July 1990.
S.J. Garland and J.V. Guttag,A Guide to LP, The LARCH Prover, Digital Systems Research Center, SRC Report 82, December 1991.
A. Geser and H. Hußmann, “Experiences with the RAP system—A specification interpreter combining term rewriting and resolution,” in B. Robinet and R. Wilhelm (Eds.),ESOP 86 Conference Proceedings, Lecture Notes in Computer Science, 213, Springer, 1986, pp. 339–350.
J.V.Guttag, J.J.Horning, and J.Wing, “An overview of the larch family of specification languages,”IEEE Software, Vol. 2, No. 5, pp. 24–36, 1985.
J.V.Guttag and J.J.Horning, “Report on the larch shared language,”Science of Computer Programming, Vol. 6, No. 2, pp. 103–134, 1986.
J.V.Guttag and J.J.Horning, “A larch shared language handbook,”Science of Computer Programming, Vol. 6, No. 2, pp. 135–157, 1986.
J.V.Guttag and J.J.Horning (Eds.), S.J.Garland, K.D.Jones, A.Modet, and J.M.Wing, “Larch: languages and tools for formal specification,”Texts and Monographs in Computer Science, Springer-Verlag, New York, 1993.
C.A.R.Hoare, “Quicksort,”Computer Journal, Vol. 5, pp. 10–15, 1962.
C.A.R.Hoare and M.Foley, “Proof of a recursive program: Quicksort,”Computing Journal, Vol. 14, No. 4, pp. 391–395, 1971.
H. Hußmann, “A case study towards algebraic verification of code generation,” in T. Rus and C. Rattray (Eds.),2nd Conference on Algebraic Methodology and Software Technology (AMAST), Iowa City, Iowa, USA, to appear in Springer Workshops in Computer Science, May 1991.
C.B. Jones,Systematic Program Development Using VDM, Prentice Hall, 1986.
R. London,Correctness of Two Compilers for a LISP Subset. Stanford University, Computer Science Department, CS 240, October 1971.
D.MacKenzie, “The fangs of the VIPER,”Nature, Vol. 352, pp. 467–468, 1991.
M.S. Manasse and G. Nelson,Correct Compilation of Control Structures.
J.Misra and D.Gries, “Finding Repeated Elements,”Science of Computer Programming, Vol. 2, pp. 143–152, 1982.
T. Nipkow, “Term rewriting and beyond—Theorem proving in Isabelle,”Formal Aspects of Computing, Vol. 1, pp. 320–338.
A. C. Reeves,Towards a Sketch Based Model of Self-Interpreters, University of Stirling, Ph.D. Thesis, Submitted September 1991.
T. Rus,Algebraic Construction of a Compiler, The University of Iowa, Department of Computer Science, Technical Report 90-01, February 1990.
B. Schieder, Private Communication.
The MunichSpectrum Group, M. Broy, C. Facchi, R. Grosu, R. Hettler, H. Hußmann, D. Nazareth, F. Regensburger, and K. Stølen,The Requirement and Design Specification Language Spectrum,An Informal Introduction, Institut für Informatik, Technische Universität München, TUM-19140, October 1991.
M. Wirsing, “Algebraic specification,”Handbook of Theoretical Computer Science, 1990.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Broy, M. Experiences with software specification and verification using LP, the Larch proof assistant. Form Method Syst Des 8, 221–272 (1996). https://doi.org/10.1007/BF00709138
Received:
Revised:
Issue date:
DOI: https://doi.org/10.1007/BF00709138
