On the Representation of McCarthy's amb in the π-calculus

We study the encoding of λ, the call-by-name λ-calculus enriched with McCarthy's amb operator, into the π-calculus. Semantically, amb is a challenging operator, for the fairness constraints that it expresses. We prove that, under a certain interpretation of divergence in the λ-calculus (weak divergence), a faithful encoding is impossible. However, with a different interpretation of divergence (strong divergence), the encoding is possible, and for this case we derive results and coinductive proof methods to reason about λ that are similar to those for the encoding of pure λ-calculi. We then use these methods to derive the most important laws concerning amb. We take bisimilarity as behavioural equivalence on the π-calculus, which sheds some light on the relationship between fairness and bisimilarity.

[1]  Robin Milner Functions as Processes , 1990, ICALP.

[2]  Andrew Moran,et al.  Unique Fixed Point Induction for McCarthy's Amb , 1999, MFCS.

[3]  Prakash Panangaden McCarthy's Amb Cannot Implement Fair Merge , 1988, FSTTCS.

[4]  Davide Sangiorgi,et al.  Lazy functions and mobile processes , 2000, Proof, Language, and Interaction.

[5]  Cosimo Laneve,et al.  Lambda-calculus, Multiplicities, and the Pi-calculus , 2000, Proof, Language, and Interaction.

[6]  ADOLFO PIPERNO,et al.  A FILTER MODEL FOR CONCURRENT -CALCULUS MARIANGIOLA DEZANI-CIANCAGLINI AND UGO DE'LIGUORO DIPARTIMENTO DI INFORMATICA UNIVERSIT , 1998 .

[7]  John McCarthy,et al.  A basis for a mathematical theory of computation, preliminary report , 1899, IRE-AIEE-ACM '61 (Western).

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

[9]  Maribel Fernández,et al.  Interaction Nets with McCarthy's amb , 2002, EXPRESS.

[10]  S. Abramsky The lazy lambda calculus , 1990 .

[11]  Gérard Boudol,et al.  Lambda-Calculi for (Strict) Parallel Functions , 1994, Inf. Comput..

[12]  J. Shepherdson,et al.  Computer programming and formal systems , 1965 .

[13]  David Sands,et al.  A Naïve Time Analysis and its Theory of Cost Equivalence , 1995, J. Log. Comput..

[14]  Patrick Billingsley,et al.  Probability and Measure. , 1986 .

[15]  Davide Sangiorgi,et al.  On Asynchrony in Name-Passing Calculi , 1998, ICALP.

[16]  Davide Sangiorgi,et al.  The Pi-Calculus - a theory of mobile processes , 2001 .

[17]  Mariangiola Dezani-Ciancaglini,et al.  A Filter Model for Concurrent lambda-Calculus , 1998, SIAM J. Comput..

[18]  Douglas J. Howe Proving Congruence of Bisimulation in Functional Programming Languages , 1996, Inf. Comput..

[19]  Benjamin C. Pierce,et al.  Decoding Choice Encodings , 1999 .

[20]  Robin Milner,et al.  The Problem of "Weak Bisimulation up to" , 1992, CONCUR.

[21]  Glynn Winskel,et al.  Relational Reasoning about Functions and Nondeterminism , 1999 .

[22]  Davide Sangiorgi,et al.  On the Representation of McCarthy's amb in the π-calculus , 2003, EXPRESS.

[23]  Andrew Moran,et al.  Call-by-name, Call-by-need, and McCarthy's Amb , 1998 .

[24]  Corin Pitcher,et al.  Functional programming and erratic non-determinism , 2001 .

[25]  Rance Cleaveland,et al.  Divergence and Fair Testing , 1995, ICALP.

[26]  David Turner An approach to functional operating systems , 1990 .

[27]  David Turner,et al.  Research topics in functional programming , 1990 .

[28]  John Hughes,et al.  Expressing and Reasoning About Non-Deterministic Functional Programs , 1989, Functional Programming.

[29]  Peter Henderson,et al.  Purely Functional Operating Systems , 1982 .