Abstract
We have designed a programming logic based on an integration of functional programming languages with classical set theory. The logic merges a classical view of equality with a constructive one by using equivalence classes, while at the same time allowing computation with representatives of equivalence classes. Given a programming language and its operational semantics, a logic is obtained by extending the language with the operators of set theory and classical logic, and extending the operational semantics with “evaluation” rules for these new operators. This operational approach permits us to give a generic design. We give a general formalism for specifying evaluation semantics, and parameterize our design with respect to languages specifiable in this formalism. This allows us to prove, once and for all, important properties of the semantics such as the coherence of the treatment of equality.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
S. Abramsky. The lazy lambda calculus. Proceedings of the Institute of Declarative Programming, August 1987.
M. J. Beeson. Towards a computation system based on set theory. Theoretical Computer Science, 60:297–340, 1988.
E. Bishop. Foundations of Constructive Analysis. McGraw-Hill, New York, 1967.
V. Breazu-Tannen and R. Subrahmanyam. Logical and computational aspects of programming with sets/bags/lists. In Automata, Languages and Programming: 18th International Colloquium, Lecture Notes in Computer Science, pages 60–75. Springer-Verlag, 1991.
V. Breazu-Tannen and R. Subrahmanyam. On extending computational adequacy by data abstraction. In Proc. ACM Symposium on Lisp and Functional Programming, pages 161–169. ACM Press, 1992.
R. L. Constable, et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, Englewood Cliffs, New Jersey, 1986.
T. Coquand and G. Huet. The Calculus of Constructions. Information and Computation, 76:95–120, 1988.
S. Feferman. A language and axioms for explicit mathematics. In Dold, A. and B. Eckmann, editor, Algebra and Logic, volume 450 of Lecture Notes in Mathematics, pages 87–139. Springer-Verlag, 1975.
M. Gordon. A proof generating system for higher-order logic. In Proceedings of the Hardware Verification Workshop, 1989.
K. Grue. Map theory. Theoretical Computer Science, 102:1–133, 1992.
D. J. Howe. Equality in lazy computation systems. In Proceedings of the Fourth Annual Symposium on Logic in Computer Science, pages 198–203. IEEE Computer Society, June 1989.
D. J. Howe. On computational open-endedness in Martin-Löf's type theory. In Proceedings of the Sixth Annual Symposium on Logic in Computer Science, pages 162–172. IEEE Computer Society, 1991.
P. Martin-Löf. Constructive mathematics and computer programming. In Sixth International Congress for Logic, Methodology, and Philosophy of Science, pages 153–175. North Holland, 1982.
D. A. McAllester. Ontic: A Knowledge Representation System for Mathematics. MIT Press, 1989.
L. Paulson. Isabelle: The next 700 theorem provers. In P. Odifreddi, editor, Logic and Computer Science, pages 361–385. Academic Press, 1990.
L. C. Paulson. Set theory for verification: I. from foundations to functions. Technical report, University of Cambridge, 1993.
J. C. Reynolds. Polymorphism is not set-theoretic. In G. Kahn, D. B. MacQueen, and G. Plotkin, editors, Semantics of Data Types: International Symposium, volume 173 of Lecture Notes in Computer Science, pages 145–156. Springer-Verlag, 1984.
J. Spivey. The Z Notation. Prentice Hall, 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Howe, D.J., Stoller, S.D. (1994). An operational approach to combining classical set theory and functional programming languages. In: Hagiya, M., Mitchell, J.C. (eds) Theoretical Aspects of Computer Software. TACS 1994. Lecture Notes in Computer Science, vol 789. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57887-0_89
Download citation
DOI: https://doi.org/10.1007/3-540-57887-0_89
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57887-1
Online ISBN: 978-3-540-48383-0
eBook Packages: Springer Book Archive