Encoding call-by-push-value in the pi-calculus
By: Benjamin Bennetzen, Nikolaj Rossander Kristensen, Peter Buus Steffensen
Potential Business Impact:
Makes computer programs talk to each other better.
In this report we define an encoding of Levys call-by-push-value lambda-calculus (CBPV) in the pi-calculus, and prove that our encoding is both sound and complete. We present informal (by-hand) proofs of soundness, completeness, and all required lemmas. The encoding is specialized to the internal pi-calculus (pi-i-calculus) to circumvent certain challenges associated with using de Bruijn index in a formalization, and it also helps with bisimulation as early-, late- and open-bisimulation coincide in this setting, furthermore bisimulation is a congruence. Additionally, we argue that our encoding also satisfies the five criteria for good encodings proposed by Gorla, as well as show similarities between Milners and our encoding. This paper includes encodings from CBPV in the pi-i-calculus, asynchronous polyadic pi-calculus and the local pi-calculus. We begin a formalization of the proof in Coq for the soundness and completeness of the encoding in the pi-i-calculus. Not all lemmas used in the formalization are themselves formally proven. However, we argue that the non-proven lemmas are reasonable, as they are proven by hand, or amount to Coq formalities that are straightforward given informal arguments.
Similar Papers
Games, mobile processes, and functions
Logic in Computer Science
Connects two ways computers understand programs.
Sound and Complete Invariant-Based Heap Encodings (Technical Report)
Logic in Computer Science
Helps computers check programs with tricky memory.
The Seifert-van Kampen Theorem via Computational Paths: A Formalized Approach to Computing Fundamental Groups
Logic in Computer Science
Makes math proofs about shapes easier for computers.