English
Related papers

Related papers: {\pi} with leftovers: a mechanisation in Agda

200 papers

Session types capture precise protocol structure in concurrent programming, but do not specify properties of the exchanged values beyond their basic type. Refinement types are a form of dependent types that can address this limitation,…

Logic in Computer Science · Computer Science 2012-11-20 Pedro Baltazar , Dimitris Mostrous , Vasco T. Vasconcelos

We describe a type system for the linear-algebraic $\lambda$-calculus. The type system accounts for the linear-algebraic aspects of this extension of $\lambda$-calculus: it is able to statically describe the linear combinations of terms…

Logic in Computer Science · Computer Science 2017-05-12 Pablo Arrighi , Alejandro Díaz-Caro , Benoît Valiron

Locks are a classic data structure for concurrent programming. We introduce a type system to ensure that names of the asynchronous pi-calculus are used as locks. Our calculus also features a construct to deallocate a lock once we know that…

Logic in Computer Science · Computer Science 2023-09-15 Daniel Hirschkoff , Enguerrand Prebet

Type systems provide software developers immediate feedback about a subset of correctness properties of their programs. IDE integrations often take advantage of type systems to present errors, suggest completions and even improve…

Programming Languages · Computer Science 2022-07-14 Alcides Fonseca , Guilherme Espada

In recent years, the interest in using proof assistants to formalise and reason about mathematics and programming languages has grown. Type-logical grammars, being closely related to type theories and systems used in functional programming,…

Logic in Computer Science · Computer Science 2017-09-06 Wen Kokke

We extend the linear {\pi}-calculus with composite regular types in such a way that data containing linear values can be shared among several processes, if there is no overlapping access to such values. We describe a type reconstruction…

Programming Languages · Computer Science 2019-03-14 Luca Padovani

Type and effect systems are a tool to analyse statically the behaviour of programs with effects. We present a proof based on the so called reducibility candidates that a suitable stratification of the type and effect system entails the…

Logic in Computer Science · Computer Science 2010-07-01 Roberto Amadio

Erasure enriches type theory with a distinction between runtime relevant and irrelevant data, allowing the compilation step to safely erase the latter. Versions of this feature are implemented by many systems, including Agda, Idris, and…

Programming Languages · Computer Science 2026-05-04 Constantine Theocharis , Edwin Brady

The depth-bounded fragment of the pi-calculus is an expressive class of systems enjoying decidability of some important verification problems. Unfortunately membership of the fragment is undecidable. We propose a novel type system,…

Logic in Computer Science · Computer Science 2015-02-24 Emanuele D'Osualdo , Luke Ong

We investigate program equivalence for linear higher-order(sequential) languages endowed with primitives for computational effects. More specifically, we study operationally-based notions of program equivalence for a linear…

Programming Languages · Computer Science 2021-06-25 Ugo Dal Lago , Francesco Gavazzo

Graded Type Theory provides a mechanism to track and reason about resource usage in type systems. In this paper, we develop GraD, a novel version of such a graded dependent type system that includes functions, tensor products, additive…

Programming Languages · Computer Science 2021-01-07 Pritam Choudhury , Harley Eades , Richard A. Eisenberg , Stephanie C Weirich

We consider the problem of designing typed concurrent calculi with non-deterministic choice in which types leverage linearity for controlling resources, thereby ensuring strong correctness properties for processes. This problem is…

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

Static resource analysis determines the resource consumption (e.g., time complexity) of a program without executing it. Among the numerous existing approaches for resource analysis, affine type systems have been one dominant approach.…

Programming Languages · Computer Science 2026-01-23 Han Xu , Di Wang

Despite a growing body of work at the intersection of deep learning and formal languages, there has been relatively little systematic exploration of transformer models for reasoning about typed lambda calculi. This is an interesting area of…

Programming Languages · Computer Science 2023-04-21 Brando Miranda , Avi Shinnar , Vasily Pestun , Barry Trager

Bounded linear types have proved to be useful for automated resource analysis and control in functional programming languages. In this paper we introduce an affine bounded linear typing discipline on a general notion of resource which can…

Programming Languages · Computer Science 2013-07-10 Dan R. Ghica , Alex Smith

We present a calculus that models a form of process interaction based on copyless message passing, in the style of Singularity OS. The calculus is equipped with a type system ensuring that well-typed processes are free from memory faults,…

Programming Languages · Computer Science 2015-07-01 Viviana Bono , Luca Padovani

Datatype-generic programming increases program abstraction and reuse by making functions operate uniformly across different types. Many approaches to generic programming have been proposed over the years, most of them for Haskell, but…

Programming Languages · Computer Science 2012-02-15 José Pedro Magalhães , Andres Löh

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 present a C-language implementation of the lambda-pi calculus by extending the (call-by-need) stack machine of Ariola, Chang and Felleisen to hold types, using a typeless- tagless- final interpreter strategy. It has the advantage of…

Programming Languages · Computer Science 2015-09-24 David M. Rogers

One of the aims of Implicit Computational Complexity is the design of programming languages with bounded computational complexity; indeed, guaranteeing and certifying a limited resources usage is of central importance for various aspects of…

Logic in Computer Science · Computer Science 2014-10-24 Erika De Benedetti , Simona Ronchi Della Rocca