Abstract
The most powerful tools for analysis of formal specifications are general-purpose theorem provers and model checkers, but these tools provide scant methodological support. Conversely, those approaches that do provide a well-developed method generally have less powerful automation. It is natural, therefore, to try to combine the better-developed methods with the more powerful general-purpose tools. An obstacle is that the methods and the tools often employ very different logics. We argue that methods are separable from their logics and are largely concerned with the structure and organization of specifications. We propose a technique called structural embedding that allows the structural elements of a method to be supported by a general-purpose tool, while substituting the logic of the tool for that of the method. We have found this technique quite effective and we provide some examples of its application. We also suggest how general-purpose systems could be restructured to support this activity better.
This work was supported by National Science Foundation grant CCR-9509931 while the first author was an International Fellow at SRI International.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
J.-R. Abrial. The B-Book—Assigning Programs to Meanings. Cambridge University Press, 1996.
Sten Agerholm. Translating specifications in VDM-SL to PVS. In Joakim von Wright, Jim Grundy, and John Harrison, editors, Theorem Proving in Higher Order Logics: 9th International Conference, TPHOLs’ 96, volume 1125 of Lecture Notes in Computer Science, pages 1–16, Turku, Finland, August 1996. Springer-Verlag.
Sten Agerholm, Juan Bicarregui, and Savi Maharaj. On the verification of VDM specification and refinement with PVS. In Juan Bicarregui, editor, Proof in VDM: Case Studies, FACIT (Formal Approaches to Computing and Information Technology), chapter 6, pages 157–190. Springer-Verlag, London, UK, 1997.
Sten Agerholm and Jacob Frost. An Isabelle-based theorem prover for VDM-SL. In Elsa Gunter and Amy Felty, editors, Theorem Proving in Higher Order Logics: 10th International Conference, TPHOLs’ 97, volume 1275 of Lecture Notes in Computer Science, pages 1–16, Murray Hill, NJ, August 1997. Springer-Verlag.
B. Barras, S. Boutin, C. Cornes, J. Courant, J.C. Filliatre, E. Giménez, H. Herbelin, G. Huet, C. Mu~noz, C. Murthy, C. Parent, C. Paulin, A. Saëbi, and B. Werner. The Coq Proof Assistant Reference Manual-Version V6.1. Technical Report 0203, INRIA, August 1997.
Michael J. Beeson. Towards a computation system based on set theory. Theoretical Computer Science, 60:297–340, 1988.
J.C. Bicarregui, D.L. Clutterbuck, G. Finnie, H. Haughton, K. Lano, H. Lesan, D.W.R.M. Marsh, B.M. Matthews, M.R. Moulding, A.R. Newton, B. Ritchie, T.G. A. Rushton, and P.N. Scharbach. Formal methods into practice: Case studies in the application of the B method. IEE Proc. Software Engineering, 144(2):119–133, 1997.
J.C. Bicarregui and B. Ritchie. Invariants, frames and postconditions: A comparison of the VDM and B notations. IEEE Transactions on Software Engineering, 21(2):79–89, February 1995.
J.-P. Bodeveix, M. Filali, and C. Mu~noz. A formalization of the B-method in Coq and PVS. Manuscript, 1999.
R. Boulton, A. Gordon, M.J.C. Gordon, J. Herbert, and J. van Tassel. Experience with embedding hardware description languages in HOL. In Proc. International Conference on Theorem Provers in Circuit Design: Theory, Practice and Experience, pages 129–156, Nijmegen, June 1992. IFIP TC10/WG 10.2, North-Holland.
M. Büchi. The B bank: A complete case study. In Proc. ICFEM98, pages 190–199. IEEE Press, December 1998.
Martin Büchi. The B bank. In Emil Sekerinski and Kaisa Sere, editors, Program Development by Refinement: Case Studies Using the B Method, FACIT (Formal Approaches to Computing and Information Technology), chapter 4, pages 115–180. Springer-Verlag, London, UK, 1999.
William Chan, Richard J. Anderson, Paul Beame, Steve Burns, Francesmary Modugno, David Notkin, and Jon D. Rees. Model checking large software specifications. IEEE Transactions on Software Engineering, 24(7):498–520, July 1998.
Andrew M. Gravell and Chris H. Pratten. Embedding a formal notation: Experiences of automating the embedding of Z in the higher order logics of PVS and HOL. In Grundy and Newey [16], pages 73–84. Available at http://www.staff.ecs.soton.ac.uk/~amg/javalil/efn.ps.gz.
Andrew M. Gravell and Chris H. Pratten. A prototype generic tool supporting the embedding of formal notations. In Grundy and Newey [16], pages 63–72. Available at http://www.staff.ecs.soton.ac.uk/~amg/javalil/agt.ps.gz.
Jim Grundy and Malcolm Newey, editors. Theorem Proving in Higher Order Log-ics: Emerging Trends 11th International Conference, TPHOLs’ 98, Supplementary Proceedings, Canberra, Australia, September 1998. Technical Report 98-08, Department of Computer Science, Australian National University.
Mats P. E. Heimdahl and Barbara J. Czerny. Using PVS to analyze hierarchical state-based requirements for completeness and consistency. In IEEE High-Assurance Systems Engineering Workshop (HASE’ 96), pages 252–262, Niagara on the Lake, Canada, October 1996.
Mats P. E. Heimdahl and Nancy G. Leveson. Completeness and consistency in hierarchical state-based requirements. IEEE Transactions on Software Engineering, 22(6):363–377, June 1996.
Constance L. Heitmeyer, Ralph D. Jeffords, and Bruce G. Labaw. Automated consistency checking of requirements specifications. ACM Transactions on Software Engineering and Methodology, 5(3):231–261, July 1996.
Ulrich Hensel, Marieke Huisman, Bart Jacobs, and Hendrik Tews. Reasoning about classes in object-oriented languages: Logical models and tools. In Chris Hankin, editor, Programming Languages and Systems: 7th European Symposium On Programming (ESOP), volume 1381 of Lecture Notes in Computer Science, pages 105–121, Lisbon, Portugal, March 1998. Springer-Verlag.
Bart Jacobs, Joachim van den Berg, Marieke Huisman, Martijn van Berkum, Ulrich Hensel, and Hendrick Tews. Reasoning about Java classes. In Proceedings, Object-Oriented Programming Systems, Languages and Applications (OOP-SLA’98), pages 329–340, Vancouver, Canada, October 1998. Association for Computing Machinery. Proceedings issued as ACM SIGPLAN Notices Vol. 33, No. 10, October 1998.
C.B. Jones. Systematic Software Development Using VDM. Prentice-Hall International, Englewood Cliffs, New Jersey, second edition, 1990. ISBN 0-13-880733-7.
Matt Kaufmann and J Strother Moore. An industrial strength theorem prover for a logic based on Common Lisp. IEEE Transactions on Software Engineering, 23(4):203–213, April 1997.
K. Lano and H. Haughton. Specification in B. Imperial College Press, 1996.
Nancy G. Leveson, Mats Per Erik Heimdahl, Holly Hildreth, and Jon Damon Reese. Requirements specification for process-control systems. IEEE Transactions on Software Engineering, 20(9):684–707, September 1994.
Paul S. Miner and James F. Leathrum, Jr. Verification of IEEE compliant subtractive division algorithms. In Mandayam Srivas and Albert Camilleri, editors, Formal Methods in Computer-Aided Design (FMCAD’ 96), volume 1166 of Lecture Notes in Computer Science, pages 64–78, Palo Alto, CA, November 1996. Springer-Verlag.
M.J.C. Gordon and T.F. Melham. Introduction to HOL: A Theorem Proving Environment for Higher Order Logic. Cambridge University Press, 1993.
C. Mu~noz. PBS: Support for the B-method in PVS. Technical Report SRI-CSL-99-01, SRI International, February 1999.
University of Teesside. B-resource. Available at http://www-scm.tees.ac.uk/bresource/welcome.html.
S. Owre, J. M. Rushby, and N. Shankar. PVS: A prototype verification system. In Deepak Kapur, editor, 11th International Conference on Automated Deduction (CADE), volume 607 of Lecture Notes in Artificial Intelligence, pages 748–752, Saratoga, NY, June 1992. Springer-Verlag.
Sam Owre, John Rushby, and N. Shankar. Integration in PVS: Tables, types, and model checking. In Ed Brinksma, editor, Tools and Algorithms for the Construction and Analysis of Systems (TACAS’ 97), volume 1217 of Lecture Notes in Computer Science, pages 366–383, Enschede, The Netherlands, April 1997. Springer-Verlag.
David Y. W. Park, Jens U. Skakkebæk, Mats P. E. Heimdahl, Barbara J. Czerny, and David L. Dill. Checking properties of safety critical specifications using efficient decision procedures. In Mark Ardis, editor, Second Workshop on Formal Methods in Software Practice (FMSP’ 98), pages 34–43, Clearwater Beach, FL, March 1998. Association for Computing Machinery.
David Lorge Parnas. Tabular representation of relations. Technical Report CRL Report 260, Telecommunications Research Institute of Ontario (TRIO), Faculty of Engineering, McMaster University, Hamilton, Ontario, Canada, October 1992.
David Lorge Parnas. Predicate logic for software engineering. IEEE Transactions on Software Engineering, 19(9):856–862, September 1993.
David Lorge Parnas and Jan Madey. Functional documents for computer systems. Science of Computer Programming, 25(1):41–61, October 1995.
L. C. Paulson. Isabelle: A Generic Theorem Prover, volume 828 of Lecture Notes in Computer Science. Springer-Verlag, 1994.
Vaughan Pratt. Anatomy of the Pentium bug. In TAPSOFT’ 95: Theory and Practice of Software Development, volume 915 of Lecture Notes in Computer Science, pages 97–107, Aarhus, Denmark, May 1995. Springer-Verlag.
C.H. Pratten. An introduction to proving AMN specifications with PVS and the AMN-PROOF tool. In Henri Habrias, editor, Proc. Z Twenty Years On— What Is Its Future, pages 149–165. IRIN-IUT de Nantes, October 1995.
H. Rueβ, N. Shankar, and M. K. Srivas. Modular verification of SRT division. In Rajeev Alur and Thomas A. Henzinger, editors, Computer-Aided Verification, CAV’ 96, volume 1102 of Lecture Notes in Computer Science, pages 123–134, New Brunswick, NJ, July/August 1996. Springer-Verlag.
John Rushby. PVS bibliography. Technical report, Computer Science Laboratory, SRI International, Menlo Park, CA. Constantly updated; available at http://www.csl.sri.com/pvs-bib.html.
John Rushby, Sam Owre, and N. Shankar. Subtypes for specifications: Predicate subtyping in PVS. IEEE Transactions on Software Engineering, 24(9):709–720, September 1998.
Mark Saaltink, Sentot Kromodimoeljo, Bill Pase, Dan Craigen, and Irwin Meisels. An EVES data abstraction example. In J. C. P. Woodcock and P. G. Larsen, editors, FME’ 93: Industrial-Strength Formal Methods, volume 670 of Lecture Notes in Computer Science, pages 578–596, Odense, Denmark, April 1993. Springer-Verlag.
Lance Sherry. Apparatus and method for controlling the vertical profile of an aircraft. United States Patent 5,337,982, August 16, 1994.
J.M. Spivey. Introducing Z: A Specification Language and its Formal Semantics. Cambridge University Press, 1988.
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
Muñoz, C., Rushby, J. (1999). Structural Embeddings: Mechanization with Method. In: Wing, J.M., Woodcock, J., Davies, J. (eds) FM’99 — Formal Methods. FM 1999. Lecture Notes in Computer Science, vol 1708. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48119-2_26
Download citation
DOI: https://doi.org/10.1007/3-540-48119-2_26
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66587-8
Online ISBN: 978-3-540-48119-5
eBook Packages: Springer Book Archive