Equality in lazy computation systems
Proceedings of the Fourth Annual Symposium on Logic in computer science
Research topics in functional programming
Proving congruence of bisimulation in functional programming languages
Information and Computation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Equational term graph rewriting
Fundamenta Informaticae - Special issue on graph transformations
A unified computation model for functional and logic programming
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lambda calculus with explicit recursion
Information and Computation
A non-deterministic call-by-need lambda calculus
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Bisimilarity as a theory of functional programming
Theoretical Computer Science - Special issue on mathematical foundations of programming semantics
A Calculus for Link-Time Compilation
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Erratic Fudgets: A Semantic Theory for an Embedded Coordination Language
COORDINATION '99 Proceedings of the Third International Conference on Coordination Languages and Models
Mathematical Structures in Computer Science
Safety of nöcker's strictness analysis
Journal of Functional Programming
Diagrams for meaning preservation
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Information Processing Letters
Hi-index | 0.00 |
The paper proposes a variation of simulation for checking and proving contextual equivalence in a non-deterministic call-by-need lambda-calculus with constructors, case, seq, and a letrec with cyclic dependencies. It also proposes a novel method to prove its correctness. The calculus' semantics is based on a small-step rewrite semantics and on may-convergence. The cyclic nature of letrec bindings, as well as non-determinism, makes known approaches to prove that simulation implies contextual preorder, such as Howe's proof technique, inapplicable in this setting. The basic technique for the simulation as well as the correctness proof is called pre-evaluation, which computes a set of answers for every closed expression. If simulation succeeds in finite computation depth, then it is guaranteed to show contextual preorder of expressions.