Publication:
Relating function spaces to resourced function spaces.

Research Projects
Organizational Units
Journal Issue
Abstract
In order to prove the computational adequacy of the (operational)natural semantics for lazy evaluation with respect to a standard denotational semantics, Launchbury defines a resourced denotational semantics. This should be equivalent to the standard one when given infinite resources, but this fact cannot be so directly established, because each semantics produces values in a different domain. The values obtained by the standard semantics belong to the usual lifted function space D = [D → D]⊥, while those produced by the resourced semantics belong to [C → E] where E satisfies the equation E = [[C → E] → [C → E]]⊥ and C (the domain of resources) is a countable chain domain defined as the least solution of the domain equation C = C⊥. We propose a way to relate functional values in the standard lifted function space to functional values in the corresponding resourced function space. We first construct the initial solution for the domain equation E = [[C → E] → [C → E]]⊥ following Abramsky’s construction of the initial solution of D = [D → D]⊥. Then we define a “similarity” relation between values in the constructed domain and values in the standard lifted function space. This relation is inspired by Abramsky’s applicative bisimulation. Finally we prove the desired equivalence between the standard denotational semantics and the resourced semantics for the lazy λ-calculus.
Description
Keywords
Citation
S. Abramsky. Research Topics in Functional Programming, chapter The Lazy Lambda Calculus,pages 65–116. Addison-Wesley, 1990. S. Abramsky and C.-H. L. Ong. Full abstraction in the lazy lambda calculus. Information and Computation,105(2):159–267, 1993. C. Baker-Finch, D. King, and P. W. Trinder. An operational semantics for parallel lazy evaluation. In ACM International Conference on Functional Programming (ICFP’00), pages 162–173, 2000. H. P. Barendregt. The Lambda Calculus: Its Syntax and Semantics, volume 103 of Studies in Logic and the Foundations of Mathematics. North-Holland, 1984.G. Boudol, P. Curien, and C. Lavatelli. A semantics for lambda calculi with resources. Mathematical Structures in Computer Science, 9(4):437–482, 1999. C. Gunter and D. S. Scott. Semantic domains. In Handbook of Theoretical Computer Science, Volume B:Formal Models and Semantics, pages 633–674.Elsevier Science, 1990. J. Launchbury. A natural semantics for lazy evaluation. In ACM Symposium on Principles of Programming Languages (POPL’93), pages 144–154.ACM Press, 1993. A. Melton, D. A. Schmidt, and G. E. Strecker. Galois connections and computer science applications. In Category Theory and Computer Programming, pages 299–312. LNCS 240, Springer, 1986. K. Nakata and M. Hasegawa. Small-step and big-step semantics for call-by-need. Journal of Functional Programming, 19(6):699–722, 2009. G. D. Plotkin. Call-by-name, call-by-value and the λ-calculus. Journal of Theoretical Computer Science,1(2):125–159, 1975. L. Sanchez-Gil, M. Hidalgo-Herrero, and Y. Ortega-Mallen. Trends in Functional Programming,volume 10, chapter An Operational Semantics for Distributed Lazy Evaluation,pages 65–80. Intellect,2010. M. Schmidt-Schaug. Equivalence of call-by-name and call-by-need for lambda-calculi with letrec. Technical report,Institut fur Informatik. J. W. Goethe Universit at Frankfurt am Main, Germany, 2006. D. S. Scott. Continuous lattices. In Toposes, Algebraic Geometry and Logic, pages 97–136. LNCS 274,Springer, 1972. P. Sestoft. Deriving a lazy abstract machine. Journal of Functional Programming, 7(3):231–264, 1997. M. van Eekelen and M. de Mol. Reflections on Type Theory, λ-calculus, and the Mind. Essays dedicated to Henk Barendregt on the Occasion of his 60th Birthday,chapter Proving Lazy Folklore with Mixed Lazy/Strict Semantics, pages 87–101. Radboud University Nijmegen, The Netherlands, 2007.