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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
S. Agerholm. Mechanizing Program Verification in HOL. Master's thesis, Computer Science Department, University of Århus, Denmark, September 1991.
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.
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.
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.
R. Boulton. The HOL arith Library. Technical report, Computer Laboratory University of Cambridge, July 1992.
K. M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1988.
A. Church. A Formulation of the Simple Theory of Types. Journal of Symbolic Logic, 5, 1940.
U. Engberg, P. Grønning, and L. Lamport. Mechanical Verification of Concurrent Systems with TLA. In Fourth International Workshop on Computer Aided Verification, 1992.
J. H. Gallier. Logic for Computer Science. Foundations of Automatic Theorem Proving. Harper & Row, Publishers, 1986.
S. Garland, J. Guttag, and J. Staunstrup. Verification of VLSI circuits using LP. Technical report, DAIMI PB-258, University of Århus, Denmark, July 1988.
D. M. Goldschlag. Mechanically Verifying Concurrent Programs with the Boyer-Moore Prover. IEEE Transactions on Software Engineering, 16(9):1004–1023, September 1990.
M. J. C. Gordon. HOL — A Proof Generating System for Higher-Order Logic. Cambridge University, Computer Laboratory, 1987.
J. Harrison. The HOL reduce Library. Technical report, Computer Laboratory University of Cambridge, June 1991.
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.
T. Melham. Automating Recursive Type Definitions in Higher Order Logic. Technical Report No. 146, Computer Laboratory, University of Cambridge, Sept. 1988.
S. Owicki and L. Lamport. Proving Liveness Properties of Concurrent Programs. ACM Transactions on Programming Languages and Systems, 4(3), July 1982.
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.
R. E. Shostak. Deciding Combinations of Theories. JACM, 31:1–12, 1984.
Beverly A. Sanders. Eliminating the Substitution Axiom from UNITY Logic. Formal Aspects of Computing, 3(2):189–205, April–June 1991.
K. Slind. HOL90 Users Manual. Technical report, 1992.
R. Smullyan. First Order Logic, volume 43 of Ergebnisse der Mathematik und ihrer Grenzgebiete. Springer-Verlag, second printing 1971 edition, 1968.
Author information
Authors and Affiliations
Editor information
Rights 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