Advertisement

Symbolic animation as a proof tool

  • Juanito Camilleri
  • Vincent Zammit
Invited Paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 859)

Abstract

This paper illustrates how animation conversions [14] which help in preliminary debugging of behavioural definitions, can subsequently be used as effective proof tools which play an important role in the verification of properties related to the definitions. We illustrate this point by specifying a simple compiler to map constructs of a toy imperative programming language into instructions which run on a rudimentary abstract machine. The same conversions used to symbolically compile programs of the language and to execute the resulting machine instructions are used in the verification of the compiler. This paper suggests that conversions provide a sound basis for a proof methodology with formal animation acting as an integral step in a verification process.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aagaard and Leeser: Verifying a logic synthesis tool in Nuprl. 4th Workshop on Computer Aided Verification. (1992)Google Scholar
  2. 2.
    R. Boulton, M. Gordon, J. Herbert, and J. Van Tassel: The HOL Verification of ELLA Designs. Technical Report 199, University of Cambridge Computer Laboratory, August 1990. Revised version in the Proceedings of the International Workshop on Formal Methods in VLSI Design, Miami. (1991)Google Scholar
  3. 3.
    Albert John Camilleri: Executing Behavioural Definitions in Higher Order Logic. Ph.D. thesis, University of Cambridge Computer Laboratory. (1988)Google Scholar
  4. 4.
    Juanito Camilleri: Symbolic Compilation and Execution of Programs by Proof: A case study in HOL. Technical Report 240, University of Cambridge Computer Laboratory. (1991)Google Scholar
  5. 5.
    Juanito Camilleri and T.F. Melham: Reasoning with Inductively Defined Relations in the HOL Theorem Prover. Technical Report 265, University of Cambridge Computer Laboratory. (1992)Google Scholar
  6. 6.
    Paul Curzon: A verified compiler for a structured assembly language. In Proc. 4th International HOL Users Meeting. (1991)Google Scholar
  7. 7.
    Paul Curzon: Of what use is a verified compiler specification? Technical Report 274, University of Cambridge Computer Laboratory. (1992)Google Scholar
  8. 8.
    M.J.C. Gordon: HOL — A Machine Oriented Formulation of Higher Order Logic. Technical Report 68, University of Cambridge Computer Laboratory. (1985)Google Scholar
  9. 9.
    Matthew Hennessy: The Semantics of Programming Languages: An Elementary Introduction using Structural Operational Semantics. Wiley. (1990)Google Scholar
  10. 10.
    Hall and Windley: Simulating microprocessors from formal specifications. Higher Order Logic Theorem Proving and its Applications, Horth Holland. (1992)Google Scholar
  11. 11.
    J.J. Joyce: A verified compiler for a verified microprocessor. Technical Report 167, Computer Laboratory, University of Cambridge. (1989)Google Scholar
  12. 12.
    T.F. Melham: Automating Recursive Type Definitions in Higher Order Logic. In Current Trends in Hardware Verification and Automated Deduction, G.Birtwhistle and P.A.Subrahmanyam eds., Springer Verlag. (1988)Google Scholar
  13. 13.
    T.F. Melham: A package for Inductive Relation Definitions in HOL. In Proc. 4th International HOL Users Meeting. (1991)Google Scholar
  14. 14.
    Lawrence Paulson: A higher-order implementation of rewriting. In Science of Computer Programming 3 (1983) 119–149Google Scholar
  15. 15.
    Gordon D. Plotkin: A Structural Approach to Operational Semantics. Technical Report, Department of Computer Science, Aarhus University Denmark. (1981)Google Scholar
  16. 16.
    Rajan: Executing HOL. In Higher Order Logic Theorem Proving and its Applications. Horth Holland. (1992)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Juanito Camilleri
    • 1
  • Vincent Zammit
    • 1
  1. 1.Department of Computer Science and A.I.University of MaltaMsidaMalta

Personalised recommendations