Proving Congruence of Bisimulation in Functional Programming Languages

We give a method for proving congruence of bisimulation-like equivalences in functional programming languages. The method applies to languages that can be presented as a set of expressions together with an evaluation relation. We use this method to show that some generalizations of Abramsky's applicative bisimulation are congruences whenever evaluation can be specified by a certain natural form of structured operational semantics. One of the generalizations handles nondeterminism and diverging computations.

[1]  Douglas J. Howe On computational open-endedness in Martin-Lof's type theory , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[2]  Davide Sangiorgi The Lazy Lambda Calculus in a Concurrency Scenario , 1994, Inf. Comput..

[3]  Andrew M. Pitts,et al.  A Fully Abstract Translation between a Lambda-Calculus with Reference Types and Standard ML , 1995, TLCA.

[4]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.

[5]  Bard Bloom Can LCF be topped? Flat lattice models of typed lambda calculus , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[6]  C. Talcott The essence of rum: a theory of the intensional and extensional aspects of lisp-type computation (program transformation, closure, continuation structure, comparison-relation) , 1985 .

[7]  Douglas J. Howe Equality in lazy computation systems , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[8]  Andrew Donald Gordon,et al.  Functional programming and input/output , 1995 .

[9]  Jan Friso Groote,et al.  Structured Operational Semantics and Bisimulation as a Congruence , 1992, Inf. Comput..

[10]  Jan Willem Klop,et al.  Combinatory reduction systems , 1980 .

[11]  Radhakrishnan Jagadeesan Investigations into abstraction and concurrency , 1992 .

[12]  Eike Ritter Calculus with Reference Types and Standard ML , 1994 .

[13]  Carolyn L. Taylor The Essence of Rum: A Theory of the Intensional and Extensional Aspects of Lisp-Type Computation, , 1985 .

[14]  David Sands,et al.  Operational Theories of Improvement in Functional Languages (Extended Abstract) , 1991, Functional Programming.