Equality in lazy computation systems
Proceedings of the Fourth Annual Symposium on Logic in computer science
Research topics in functional programming
A call-by-need lambda calculus
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proving congruence of bisimulation in functional programming languages
Information and Computation
From SOS rules to proof principles: an operational metatheory for functional languages
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
An operational semantics for parallel lazy evaluation
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Principles of Program Analysis
Principles of Program Analysis
Erratic fudgets: a semantic theory for an embedded coordination language
Science of Computer Programming - Special issue on coordination languages and architectures
Concurrency and Automata on Infinite Sequences
Proceedings of the 5th GI-Conference on Theoretical Computer Science
A Congruence Theorem for Structured Operational Semantics of Higher-Order Languages
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
The call-by-need lambda calculus
Journal of Functional Programming
The call-by-need lambda calculus
Journal of Functional Programming
Mathematical Structures in Computer Science
Safety of nöcker's strictness analysis
Journal of Functional Programming
Congruence of Bisimulation in a Non-Deterministic Call-By-Need Lambda Calculus
Electronic Notes in Theoretical Computer Science (ENTCS)
A Congruence Format for Name-passing Calculi
Electronic Notes in Theoretical Computer Science (ENTCS)
On generic context lemmas for higher-order calculi with sharing
Theoretical Computer Science
Information Processing Letters
Hi-index | 0.00 |
It has become a standard approach to reason about contextual equivalence using some notion of (bi)simulation. The main technical task of this approach is to show that (bi)simulation is a (pre)congruence, and hence is sound for reasoning about contextual equivalence. Howe devised a method to prove this, and his method has been widely adapted and applied. This paper deals with this challenge for call-by-need computation including non-determinism. In this setting, sharing of sub-computations must be taken into account due to its observable effects on the outcome of computations. The technical results of this paper are the definition of a class of non-deterministic reduction-based functional languages (SHOCS). The definition of this class is in terms of a schematic characterization of the reduction rules of the language. The main result is that for SHOCS languages mutual similarity is sound for reasoning about contextual equivalence based on may-convergence. The paper also contains a presentation of a particular non-deterministic call-by-need calculus with let, case, constructors, and seq.