Full abstraction in the lazy lambda calculus
Lazy call-by-name \(\lambda\)-calculus, which is called \(\lambda l\) in the paper, is the head-reduction strategy on pure closed \(\lambda\)-terms, with the proviso that all reductions terminate upon reaching abstractions. It is the basis of many functional languages and the present paper is devoted to its study, in particular to questions of full-abstraction (fully abstract models of a reduction strategy are denotational models where two \(\lambda\)-terms have the same interpretation iff they have the same operational behaviour). A theory of lazy \(\lambda\)-models is developed under a number of more or less equivalent facets, which correspond, roughly speaking, to the usual formalisms for \(\lambda\)-models enriched with a well behaved convergence predicate (where terms whose \(\lambda l\)-reduction terminates have to be interpreted). The canonical model of lazy \(\lambda\)-calculus is the initial solution of the domain equation \(D\simeq [D\to D]_ \perp\) which expresses that \(D\) is isomorphic to the lifted space of its continuous functions. \(D\) is presented and studied by means of the usual limit construction. Then the ``domain logic associated to \(D\) is introduced; this corresponds to the view of \(D\) as a ``filter model, or as one of the particularly clear cases of the general ``Stone duality theory developed by the first author in previous work. Now \(D\) is also a model for \(\lambda l_ c\), \(\lambda l_ p\) and \(\lambda l_ \omega\), which are extensions of \(\lambda l\) obtained by adding respectively the constants: \(c\) (convergence testing), \(p\) (parallel convergence testing), or \(\pi_ n/n\in\omega\) (projections), with the usual reduction rules that make \(p\) work as an (untyped) ``parallel or and make the \(\pi_ n\) be the syntactic counterpart of the projections of \(D\) on its finite retracts (so that \(\lambda l_ \omega\) is a labelled version of \(\lambda l\)). The main results of the paper are that: 1) \(D\) is fully abstract for \(\lambda l_ p\) but not for \(\lambda l_ c\) and \(\lambda l_ \omega\), 2) one can construct retracts of \(D\) which are fully abstract wrt \(\lambda l_ c\) or \(\lambda l_ \omega\), 3) the full abstraction problem for \(\lambda l\) reduces to a conservativity result of \(\lambda l_ \omega\) over \(\lambda l\). The first set of results and proofs is in natural filiation to those in \textit{G. D. Plotkin's} ``LCF considered as a programming language [Theor. Comput. Sci. 5, 223-255 (1977; Zbl 0369.68006)], which, however, concern the typed language PCF, and of Wadsworth's work relating termination of the (complete) head reduction strategy on pure \(\lambda\)-terms and their denotation in Scott's model \(D_ \infty\), which is a minimal solution of \(D\simeq [D\to D]\). The paper is self-contained, proofs are complete and detailed, and one finds here some nice expository parts at a general level; but the length of the paper is mainly due to the fact that the authors enjoy presenting all abstract notions in a number of equivalent formalisms and variations, and use them in an interactive way; this does not help the reader to have a clear insight of what really happens at the essential (mathematical) level. However, if (s)he wishes to become familiar with all aspects of denotational semantics, (s)he will appreciate to have at hand this fully complete presentation (of the lazy versions). The semantic study of the lazy call-by-value \(\lambda\)-calculus, for which the canonical model is the initial solution of \(D\simeq [D\to_ \perp D]_ \perp\) (where only strict continuous functions are considered) is done by \textit{L. Egidi}, \textit{F. Honsell} and \textit{S. Ronchi della Rocca} [Ann. Soc. Math. Pol., Ser. IV, Fundam. Inf. 16, No. 2, 149-169 (1992; Zbl 0762.68042)], and also by G. Boudol and R. Pino- Perez in papers which are quoted there.
- Applications of infinitary lambda calculus
- Lambda-hoisting: A transformation technique for fully lazy evaluation of functional programs
- A lambda-calculus for dynamic binding
- A calculus of mobile processes. I
- Infinite \(\lambda\)-calculus and types
- Semantical analysis of perpetual strategies in -calculus
- A co-induction principle for recursively defined domains
- The lazy lambda calculus in a concurrency scenario
- A first order logic of effects
- Infinitary lambda calculus
- Behavioural inverse limit -models
- Domain theory for concurrency
- From computation to foundations via functions and application: The \(\lambda\)-calculus and its webbed models
- A fully abstract denotational semantics for the \(\pi\)-calculus
- Game semantics and linear CPS interpretation
- Discrimination by parallel observers: the algorithm.
- Descendants and origins in term rewriting.
- Infinitary lambda calculus and discrimination of Berarducci trees.
- Games characterizing Levy-Longo trees
- Adapting innocent game models for the Böhm tree \(\lambda\)-theory
- Parametric parameter passing \(\lambda\)-calculus
- Highlights in infinitary rewriting and lambda calculus
- Proving soundness of extensional normal-form bisimilarities
- The untyped computational \(\lambda \)-calculus and its intersection type discipline
- Proof, meaning and paradox: some remarks
- Observational program calculi and the correctness of translations
- Intersection types and lambda models
- A class of bounded functions, a database language and an extended lambda calculus
- Logical equivalence for subtyping object and recursive types
- Compositional characterisations of \(\lambda\)-terms using intersection types
- Fairness and communication-based semantics for session-typed languages
- Program equivalence in an untyped, call-by-value functional language with uncurried functions
- scientific article; zbMATH DE number 1722650 (Why is no real title available?)
- On the characterization of models of H^: the semantical aspect
- Logical semantics for stability
- Developing (meta)theory of -calculus in the theory of contexts
- Comparing higher-order encodings in logical frameworks and tile logic
- A fully abstract model for mobile ambients
- Simple easy terms
- Lazy logical semantics
- Extending Abramsky's lazy lambda calculus: (non)-conservativity of embeddings
- Full Abstraction for the Resource Lambda Calculus with Tests, through Taylor Expansion
- On applicative similarity, sequentiality, and full abstraction
- Small-step and big-step semantics for call-by-need
- scientific article; zbMATH DE number 16188 (Why is no real title available?)
- scientific article; zbMATH DE number 176136 (Why is no real title available?)
- Launchbury
- scientific article; zbMATH DE number 1333617 (Why is no real title available?)
- Hybrid. A definitional two-level approach to reasoning with higher-order abstract syntax
- Call_Arity
- scientific article; zbMATH DE number 2061712 (Why is no real title available?)
- scientific article; zbMATH DE number 1479607 (Why is no real title available?)
- scientific article; zbMATH DE number 1499104 (Why is no real title available?)
- Labelled reductions, runtime errors, and operational subsumption
- On the characterization of models of \(\mathcal{H}^*\)
- Full Abstraction and the Context Lemma
- From Böhm's theorem to observational equivalences: an informal account
- Towards lambda calculus order-incompleteness
- Unfixing the fixpoint: the theories of the Y-calculus
- Intersection types and computational rules
- Call-by-value Solvability
- A categorical framework for congruence of applicative bisimilarity in higher-order languages
- Infinitary lambda calculi and böhm models
- A Fresh Look at the λ-Calculus
- Full abstraction and the Context Lemma (preliminary report)
- Smaller Abstractions for ∀CTL* without Next
- Lazy lambda calculus: theories, models and local structure characterization (extended abstract)
- The infinitary lambda calculus of the infinite eta Böhm trees
- Clocked lambda calculus
- Strong normalization from an unusual point of view
- Bisimulations for delimited-control operators
- Recursive Domain Equations of Filter Models
- RPO, Second-Order Contexts, and λ-Calculus
- A fully abstract may testing semantics for concurrent objects
- Coalgebraic description of generalised binary methods
- Full abstraction for lambda calculus with resources and convergence testing
- A bisimulation for dynamic sealing
- Intersection types for -trees
- From rewrite rules to bisimulation congruences
- From semantics to types: the case of the imperative \(\lambda\)-calculus
- Algebraic interpretation of lambda calculus with resources
- Minimal relative normalization in orthogonal expression reduction systems
- Fully abstract encodings of -calculus in HOcore through abstract machines
- (Towards a) statistical probabilistic lazy lambda calculus
- Light genericity
- From semantics to types: the case of the imperative \(\lambda\)-calculus
- Filter models for conjunctive-disjunctive \(\lambda\)-calculi
- Separating terms by means of multi types, coinductively
- Lambda galore
- Interaction improvement
- An abstract framework for environment machines
- A logical approach to stable domains
- Parametric \(\lambda \)-theories
- An irregular filter model
- On the observational theory of the CPS-calculus
This page was built for publication: Full abstraction in the lazy lambda calculus
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q1261291)