Skip to main content

Program verification using HOL-UNITY

Part of the Lecture Notes in Computer Science book series (LNCS,volume 780)

Abstract

HOL-UNITY is an implementation of Chandy and Misra's UNITY theory in the HOL88 and HOL90 theorem provers. This paper shows how to verify safety and progress properties of concurrent programs using HOL-UNITY. As an example it is proved that a lift-control program satisfies a given progress property. The proof is compositional and partly automated. The progress property is decomposed into basic safety and progress properties, which are proved automatically by a developed tactic based on a combination of Gentzen-like proof methods and Pressburger decision procedures. The proof of the decomposition which includes induction is done mechanically using the inference rules of the UNITY logic implemented as theorems in HOL. The paper also contains some empirical results of running the developed tactic in HOL88 and HOL90, respectively. It turns out that HOL90 in average is about 9 times faster than HOL88. Finally, we discuss various ways of improving the tactic.

Keywords

  • Inference Rule
  • High Order Logic
  • Program Verification
  • Unity Program
  • Exit Node

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.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/3-540-57826-9_121
  • Chapter length: 15 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   99.00
Price excludes VAT (USA)
  • ISBN: 978-3-540-48346-5
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   129.00
Price excludes VAT (USA)

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S. Agerholm. Mechanizing Program Verification in HOL. Master's thesis, Computer Science Department, University of Århus, Denmark, September 1991.

    Google Scholar 

  2. F. Andersen. A Definitional Theory of UNITY in HOL. In Summary of talks at the Third Annual HOL User Meeting, PB 340, pages 151–162. DAIMI, Århus University, October 1990.

    Google Scholar 

  3. F. Andersen. A Theorem Prover for UNITY in Higher Order Logic. PhD thesis, Technical University of Denmark, 1992. Also published as TFL RT 1992–3.

    Google Scholar 

  4. F. Andersen and K. D. Petersen. Recursive Boolean Functions in HOL. In 1991 International Tutorial and Workshop on the HOL Theorem Proving System and its Applications, pages 367–377. IEEE Computer Society, August 1991.

    Google Scholar 

  5. R. Boulton. The HOL arith Library. Technical report, Computer Laboratory University of Cambridge, July 1992.

    Google Scholar 

  6. K. M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1988.

    Google Scholar 

  7. A. Church. A Formulation of the Simple Theory of Types. Journal of Symbolic Logic, 5, 1940.

    Google Scholar 

  8. U. Engberg, P. Grønning, and L. Lamport. Mechanical Verification of Concurrent Systems with TLA. In Fourth International Workshop on Computer Aided Verification, 1992.

    Google Scholar 

  9. J. H. Gallier. Logic for Computer Science. Foundations of Automatic Theorem Proving. Harper & Row, Publishers, 1986.

    Google Scholar 

  10. S. Garland, J. Guttag, and J. Staunstrup. Verification of VLSI circuits using LP. Technical report, DAIMI PB-258, University of Århus, Denmark, July 1988.

    Google Scholar 

  11. D. M. Goldschlag. Mechanically Verifying Concurrent Programs with the Boyer-Moore Prover. IEEE Transactions on Software Engineering, 16(9):1004–1023, September 1990.

    Google Scholar 

  12. M. J. C. Gordon. HOL — A Proof Generating System for Higher-Order Logic. Cambridge University, Computer Laboratory, 1987.

    Google Scholar 

  13. J. Harrison. The HOL reduce Library. Technical report, Computer Laboratory University of Cambridge, June 1991.

    Google Scholar 

  14. C.S. Jutla, E. Knapp, and J.R. Rao. A Predicate Transformer Approach to Semantics of Parallel Programs. ACM Symposium on Principles of Distributed Computing, 1989.

    Google Scholar 

  15. T. Melham. Automating Recursive Type Definitions in Higher Order Logic. Technical Report No. 146, Computer Laboratory, University of Cambridge, Sept. 1988.

    Google Scholar 

  16. S. Owicki and L. Lamport. Proving Liveness Properties of Concurrent Programs. ACM Transactions on Programming Languages and Systems, 4(3), July 1982.

    Google Scholar 

  17. K. Schneider, R. Kumar, and T. Kropf. New Concepts in Faust. In 1992 International Workshop on Higher Order Logic Theorem Proving and its Applications, pages 471–493. imec Interuniversity Micro-Electronics Center, September 1992.

    Google Scholar 

  18. R. E. Shostak. Deciding Combinations of Theories. JACM, 31:1–12, 1984.

    CrossRef  MathSciNet  Google Scholar 

  19. Beverly A. Sanders. Eliminating the Substitution Axiom from UNITY Logic. Formal Aspects of Computing, 3(2):189–205, April–June 1991.

    CrossRef  Google Scholar 

  20. K. Slind. HOL90 Users Manual. Technical report, 1992.

    Google Scholar 

  21. R. Smullyan. First Order Logic, volume 43 of Ergebnisse der Mathematik und ihrer Grenzgebiete. Springer-Verlag, second printing 1971 edition, 1968.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Andersen, F., Petersen, K.D., Pettersson, J.S. (1994). Program verification using HOL-UNITY. In: Joyce, J.J., Seger, CJ.H. (eds) Higher Order Logic Theorem Proving and Its Applications. HUG 1993. Lecture Notes in Computer Science, vol 780. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57826-9_121

Download citation

  • DOI: https://doi.org/10.1007/3-540-57826-9_121

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57826-0

  • Online ISBN: 978-3-540-48346-5

  • eBook Packages: Springer Book Archive