A Presheaf Environment for the Explicit Fusion Calculus
Journal of automated reasoning
Name passing calculi are nowadays one of the preferred formalisms for the specification of concurrent and distributed systems with a dynamically evolving topology. Despite their widespread adoption as a theoretical tool, though, they still face some unresolved semantic issues, since the standard operational, denotational and logical methods often proved inadequate to reason about these formalisms. A domain which has been successfully employed for languages with asymmetric communication, like
... π -calculus, are presheaf categories based on (injective) relabellings, such as Set I . Calculi with symmetric binding, in the spirit of the fusion calculus, give rise to novel research challenges. In this work we examine the explicit fusion This work was carried out during the first author's tenure of an ERCIM "Alain Bensoussan" Fellowship Programme. 162 F. Bonchi et al. calculus, and propose to model its syntax and semantics using the presheaf category Set E , where E is the category of equivalence relations and equivalence preserving morphisms. Keywords Algebras · Coalgebras · Denotational semantics · Nominal calculi · Presheaf categories Introduction On denotational semantics. Denotational semantics was introduced  as a formal way for specifying the meaning of programming languages: to each expression of the language (to each program) a denotation is assigned, i.e., an object in a mathematical domain. In the original proposal, each program denotes a continuous function on a partially ordered set, mapping an input of the program into the corresponding output. An important tenet of denotational semantics is that it should be compositional, i.e, the denotation of a program has to be constructed by the ones of its sub-expressions. This would allow one to reason inductively on the program structure, providing a general methodology for proving properties of programs. Despite its expressiveness, the approach is less adequate in modelling the semantics of interactive systems. Indeed, in this case the non-deterministic behaviour of a program is more important than the function it computes: thus, these systems can not be simply denoted as if they were input-output functions. Many efforts have been devoted to equip concurrent programming languages with a compositional denotational semantics, most often by restricting at first the analysis to simple computational models exhibiting fundamental aspects of concurrent computations.