Reasoning about VDM developments using the VDM support tool in mural
Mural is an interactive mathematical reasoning environment designed to assist the kind of theorem proving tasks that arise when following a formal methods approach to software engineering. It is the result of work carried out at Manchester University and the Rutherford Appleton Laboratory under the Alvey IPSE 2.5 project.
Considerable design emphasis has been placed upon the user interface, using the power of workstation technology to present information and to give the user freedom of action backed up by careful dependency tracking. Through this emphasis on the user interface it is hoped to enable users to maintain their intuition of the problem domain and hence guide the proof in the right direction, whilst the mechanical symbolic manipulation of the machine can maintain the integrity of the proof.
The Mural proof assistant is generic in that it can be instantiated for reasoning in a variety of logics. Logical theories are constructed in a hierarchical store where collections of declarations and axioms are structured along with derived rules and their proofs. Some effort has been spent on the instantiation of the proof assistant for the formal method VDM. This instantiation includes theories of the logic LPF upon which VDM is based, and of the basic types and functions of VDM.
The system includes tools for the construction of VDM specifications and reifications between them and for the generation of the proof obligations that provide the basis of the formal verification of the refinement relationship. It also supports the construction of theories in the proof assistant where it is possible to reason about specifications, reifications and proof obligations. Though there are many more features that would be desirable in a complete environment for VDM, this degree of support has shown that the Mural proof assistant could be used as an integral part of a generic support environment including provision for the formal development of software.
This paper concentrates upon the VDM support aspects of Mural: how users can build specifications and reifications between them; and how these are “translated” into Mural theories including the generation of the corresponding proof obligations.
Keywordsformal methods formal specification refinement proof integrated support environments
Unable to display preview. Download preview PDF.
- Lindsay, P. A formal system with inclusion polymorphism. IPSE 2.5 working document 060/pal014/2.3, 1987.Google Scholar
- BSI IST/5/50. VDM Specification Language Proto-Standard. Working paper IST/5/50/170, 1990.Google Scholar
- Jones, C. Systematic Software Development Using VDM. Prentice-Hall, 1990 (second edition).Google Scholar
- Jones, C. Program Specification and Verification in VDM. Technical report UMCS-86-10-5, Department of Computer Science, Manchester University, 1986.Google Scholar
- Jones, C. VDM Proof Obligations and Their Justification. In: VDM '87: VDM — A Formal Method at Work. LNCS 252, Springer-Verlag, 1987.Google Scholar
- Monahan, B. A Type Model for VDM In: VDM '87: VDM — A Formal Method at Work. LNCS 252, Springer-Verlag, 1987.Google Scholar
- Arentoft, M.M. and Larsen, P.G. The Dynamic Semantics of the BSI/VDM Specification Language. M.Sc.E.-thesis, Department of Computer Science, Technical University of Denmark, 1988.Google Scholar
- Milne, R. Proof Rules for VDM Statements. In VDM '88: VDM — The Way Ahead. LNCS 328, Springer-Verlag 1988.Google Scholar
- Ah-Kee, J.A. Operation Decomposition Proof Obligations for Blocks and Procedures. Ph.D. thesis, Department of Computer Science, Manchester University, 1989.Google Scholar
- Crispin, R.J. Experience Using VDM in STC. In: VDM '87: VDM — A Formal Method at Work. LNCS 252, Springer-Verlag, 1987.Google Scholar
- Spivey, J.M. The Z notation. Prentice-Hall, 1989.Google Scholar
- Spivey, J.M. Understanding Z. Cambridge University Press, 1988.Google Scholar
- Abrial, J-R. The B Tool (Abstract). In VDM '88: VDM — The Way Ahead. LNCS 328, Springer-Verlag 1988.Google Scholar
- Nielson, M., Klaus, H., Wagner, K.R. and George, C., The RAISE Language, Method and Tools. Formal Aspects of Computing Vol.1 No.1 pp 85–114, 1989.Google Scholar