A natural semantics for lazy evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proving congruence of bisimulation in functional programming languages
Information and Computation
An operational semantics of sharing in lazy evaluation
Science of Computer Programming
From Algol to polymorphic linear lambda-calculus
Journal of the ACM (JACM)
Geometry of Interaction and linear combinatory algebras
Mathematical Structures in Computer Science
Parametric polymorphism and operational equivalence
Mathematical Structures in Computer Science
Deriving a lazy abstract machine
Journal of Functional Programming
On a measurement-free quantum lambda calculus with classical control
Mathematical Structures in Computer Science
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
A modified GoI interpretation for a linear functional programming language and its adequacy
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
CSL'07/EACSL'07 Proceedings of the 21st international conference, and Proceedings of the 16th annuall conference on Computer Science Logic
Hi-index | 0.00 |
We study beta-reduction in a linear lambda-calculus derived from Abramsky's linear combinatory algebras. Reductions are classified depending on whether the redex is in the computationally active part of a term (“surface” reductions) or whether it is suspended within the body of a thunk (“internal” reductions). If surface reduction is considered on its own then any normalizing term is strongly normalizing. More generally, if a term can be reduced to surface normal form by a combined sequence of surface and internal reductions then every combined reduction sequence from the term contains only finitely many surface reductions. We apply these results to the operational semantics of Lily, a second-order linear lambda-calculus with recursion, introduced by Bierman, Pitts and Russo, for which we give simple proofs that call-by-value, call-by-name and call-by-need contextual equivalences coincide.