From operational to denotational semantics
In this paper operational equivalence of simple functional programs is defined, and certain basic theorems proved thereupon. These basic theorems include congruence, least fixed-point, an analogue to continuity, and fixed-point induction. We then show how any ordering on programs for which these theorems hold can be easily extended to give a fully abstract cpo for the language, giving evidence that any operational semantics with these basic theorems proven is complete with respect to a denotational semantics. Furthermore, the mathematical tools used in the paper are minimal, the techniques should be applicable to a wide class of languages, and all proofs are constructive.
Unable to display preview. Download preview PDF.
- [Abr90]S. Abramsky. The lazy lambda calculus. In Research Topics in Functional Programming, pages 65–116. Addison-Wesley, 1990.Google Scholar
- [dS69]J. W. deBakker and D. Scott. A theory of programs. unpublished notes, 1969.Google Scholar
- [GMW79]M. J. Gordon, R. Milner, and C. P. Wadsworth. Edinburgh LCF: A Mechanized Logic of Computation, volume 78 of Lecture notes in Computer Science. Springer-Verlag, 1979.Google Scholar
- [How89]D. J. Howe. Equality in lazy computation systems. In Proceedings of the Fourth Annual Symposium on Logic in Computer Science, pages 198–203. IEEE, 1989.Google Scholar
- [Iga72]S. Igarashi. Admissibility of fixed-point induction in first-order logic of typed theories. Technical Report Stan-CS-72–287, Stanford University Computer Science Department, 1972.Google Scholar
- [Man74]Z. Manna. Mathematical Theory of Computation. McGraw-Hill, 1974.Google Scholar
- [MT89]I. A. Mason and C. L. Talcott. Programming, transforming, and proving with function abstractions and memories. In Automata, languages, and programming: 16th international colloquim, volume 372 of Lecture notes in Computer Science. Springer-Verlag, 1989.Google Scholar
- [MT91]I. A. Mason and C. L. Talcott. Programming, transforming, and proving with function abstractions and memories. to appear in Journal of Lisp and Functional Programming, 1991.Google Scholar
- [Pau87]L. C. Paulson. Logic and Computation: Interactive Proof with Cambridge LCF. Cambridge, 1987.Google Scholar
- [Plo75]G. Plotkin. Call-by-name, call-by-value, and the λ-calculus. Theretical Computer Science, pages 125–159, 1975.Google Scholar
- [Smi91]S. F. Smith. Partial computations in constructive type theory. Submitted to Journal of Logic and Computation, 1991.Google Scholar
- [Sto88]A. Stoughton. Fully abstract models of programming languages. Research notes in theoretical computer science. Pitman, 1988.Google Scholar
- [Tal89]C. L. Talcott. Programming and proving with function and control abstractions. Technical Report STAN-CS-89-1288, Stanford University, Stanford, CA 94305, 1989.Google Scholar