A Formal Theory of Choreographic Programming

Luís Cruz-Filipe*, Fabrizio Montesi, Marco Peressotti

*Corresponding author for this work

Research output: Contribution to journalJournal articleResearchpeer-review

44 Downloads (Pure)

Abstract

Choreographic programming is a paradigm for writing coordination plans for distributed systems from a global point of view, from which correct-by-construction decentralised implementations can be generated automatically. Theory of choreographies typically includes a number of complex results that are proved by structural induction. The high number of cases and the subtle details in some of these proofs has led to important errors being found in published works. In this work, we formalise the theory of a choreographic programming language in Coq. Our development includes the basic properties of this language, a proof of its Turing completeness, a compilation procedure to a process language, and an operational characterisation of the correctness of this procedure. Our formalisation experience illustrates the benefits of using a theorem prover: we get both an additional degree of confidence from the mechanised proof, and a significant simplification of the underlying theory. Our results offer a foundation for the future formal development of choreographic languages.

Original languageEnglish
Article number21
JournalJournal of Automated Reasoning
Volume67
Issue number2
Number of pages34
ISSN0168-7433
DOIs
Publication statusPublished - May 2023

Bibliographical note

Funding Information:
The authors would like to thank the anonymous reviewers for their comments and suggestions, which contributed to increasing the quality of this article. This work was partially supported by Villum Fonden, grant nr 29518, and the Independent Research Fund Denmark, grant nr 0135-00219.

Keywords

  • Choreographic programming
  • Concurrency
  • Process calculi
  • Theorem proving

Fingerprint

Dive into the research topics of 'A Formal Theory of Choreographic Programming'. Together they form a unique fingerprint.

Cite this