English
Related papers

Related papers: Using Pi-Calculus Names as Locks

200 papers

Message passing is a key ingredient of concurrent programming. The purpose of this paper is to describe the equivalence between the proof theory, the categorical semantics, and term calculus of message passing. In order to achieve this we…

Category Theory · Mathematics 2010-03-03 J. R. B. Cockett , Craig Pastro

We define a pi-calculus variant with a costed semantics where channels are treated as resources that must explicitly be allocated before they are used and can be deallocated when no longer required. We use a substructural type system…

Logic in Computer Science · Computer Science 2015-07-01 Adrian Francalanza , Edsko DeVries , Matthew Hennessy

We address the problem of analysing the complexity of concurrent programs written in Pi-calculus. We are interested in parallel complexity, or span, understood as the execution time in a model with maximal parallelism. A type system for…

Computational Complexity · Computer Science 2021-10-20 Patrick Baillot , Alexis Ghyselen , Naoki Kobayashi

We study functional and concurrent calculi with non-determinism, along with type systems to control resources based on linearity. The interplay between non-determinism and linearity is delicate: careless handling of branches can discard…

Logic in Computer Science · Computer Science 2023-10-02 Bas van den Heuvel , Joseph W. N. Paulus , Daniele Nantes-Sobrinho , Jorge A. Pérez

Building a library of concurrent data structures is an essential way to simplify the difficult task of developing concurrent software. Lock-free data structures, in which processes can help one another to complete operations, offer the…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-12-18 Trevor Brown

We introduce a dialect of the Asynchronous pi-calculus, called AWpi, in which (1) an input name may be owned, at any time, by at most one process; (2) each name has either only the input or only the output capability. As a result, special…

Logic in Computer Science · Computer Science 2026-05-19 Ken Sakayori , Davide Sangiorgi , Simon Castellan , Pierre Clairambault

We describe a process calculus featuring high level constructs for component-oriented programming in a distributed setting. We propose an extension of the higher-order pi-calculus intended to capture several important mechanisms related to…

Programming Languages · Computer Science 2009-09-04 Daniel Hirschkoff , Aurélien Pardon , Tom Hirschowitz , Samuel Hym , Damien Pous

We formalise the pi-calculus using the nominal datatype package, based on ideas from the nominal logic by Pitts et al., and demonstrate an implementation in Isabelle/HOL. The purpose is to derive powerful induction rules for the semantics…

Logic in Computer Science · Computer Science 2015-07-01 Jesper Bengtson , Joachim Parrow

Probabilistic applicative bisimulation is a recently introduced coinductive methodology for program equivalence in a probabilistic, higher-order, setting. In this paper, the technique is applied to a typed, call-by-value, lambda-calculus.…

Logic in Computer Science · Computer Science 2014-01-30 Raphaelle Crubille , Ugo Dal Lago

We present a type system to guarantee termination of pi-calculus processes that exploits input/output capabilities and subtyping, as originally introduced by Pierce and Sangiorgi, in order to analyse the usage of channels. We show that our…

Logic in Computer Science · Computer Science 2011-08-29 Ioana Cristescu , Daniel Hirschkoff

We study the Pi-calculus, enriched with pairing and non-blocking input, and define a notion of type assignment that uses the type constructor "arrow". We encode the circuits of the calculus X into this variant of Pi, and show that all…

Logic in Computer Science · Computer Science 2011-09-23 Steffen van Bakel , Luca Cardelli , Maria Grazia Vigliotti

A type system is introduced for a generic Object Oriented programming language in order to infer resource upper bounds. A sound andcomplete characterization of the set of polynomial time computable functions is obtained. As a consequence,…

Programming Languages · Computer Science 2018-02-20 Emmanuel Hainry , Romain Péchoux

We view channels as the main form of resources in a message-passing programming paradigm. These channels need to be carefully managed in settings where resources are scarce. To study this problem, we extend the pi-calculus with primitives…

Logic in Computer Science · Computer Science 2010-04-08 Edsko de Vries , Adrian Francalanza , Matthew Hennessy

The extensive deployment of probabilistic algorithms has radically changed our perspective on several well-established computational notions. Correctness is probably the most basic one. While a typical probabilistic program cannot be said…

Logic in Computer Science · Computer Science 2025-02-17 Francesco A. Genco , Giuseppe Primiero

Formalising the pi-calculus is an illuminating test of the expressiveness of logical frameworks and mechanised metatheory systems, because of the presence of name binding, labelled transitions with name extrusion, bisimulation, and…

Logic in Computer Science · Computer Science 2015-07-30 Roly Perera , James Cheney

A notion of probabilistic lambda-calculus usually comes with a prescribed reduction strategy, typically call-by-name or call-by-value, as the calculus is non-confluent and these strategies yield different results. This is a break with one…

Logic in Computer Science · Computer Science 2020-02-21 Ugo Dal Lago , Giulio Guerrieri , Willem Heijltjes

Linear logic Concurrent Constraint programming (LCC) is an extension of concurrent constraint programming (CC) where the constraint system is based on Girard's linear logic instead of the classical logic. In this paper we address the…

Programming Languages · Computer Science 2011-08-02 Rémy Haemmerlé

A $\lambda$-calculus is introduced in which all programs can be evaluated in probabilistic polynomial time and in which there is sufficient structure to represent sequential cryptographic constructions and adversaries for them, even when…

Programming Languages · Computer Science 2024-10-24 Ugo Dal Lago , Zeinab Galal , Giulia Giusti

Applicative bisimulation is a coinductive technique to check program equivalence in higher-order functional languages. It is known to be sound, and sometimes complete, with respect to context equivalence. In this paper we show that…

Logic in Computer Science · Computer Science 2015-06-23 Ugo Dal Lago , Alessandro Rioli

We present "Reciprocating Locks", a novel mutual exclusion locking algorithm, targeting cache-coherent shared memory (CC), that enjoys a number of desirable properties. The doorway arrival phase and the release operation both run in…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-07-14 Dave Dice , Alex Kogan