Reference. Formulae-as-types for an involutive negation
Cite
Cited by (4)
Classical Notions of Computation and the Hasegawa-Thielecke Theorem mangel-2026-classical
In the spirit of the Curry-Howard correspondence between proofs and programs, we define and study a syntax and semantics for classical logic equipped with a computationally involutive negation, using a polarised effect calculus, the linear classical L -calculus. A main challenge in designing a denotational semantics for the calculus is to accommodate both call-by-value and call-by-name evaluation strategies, which leads to a failure of associativity of composition. In order to tackle this issue, we define a notion of adjunction between graph morphisms on non-associative categories, which we use to formulate polarized and non-associative notions of symmetric monoidal closed duploid and of dialogue duploid. We show that they provide a direct style counterpart to adjunction models: linear effect adjunctions for the (linear) call-by-push-value calculus and dialogue chiralities for linear continuations, respectively. In particular, we show that the syntax of the linear classical L -calculus can be interpreted in any dialogue duploid, and that it defines in fact a syntactic dialogue duploid. As an application, we establish, by semantic as well as syntactic means, the Hasegawa-Thielecke theorem, which states that the notions of central map and of thunkable map coincide in any dialogue duploid (in particular, for any double negation monad on a symmetric monoidal category).
Resource Polymorphism munchmaccagnoni-2018-resource
We present a resource-management model for ML-style programming languages, designed to be compatible with the OCaml philosophy and runtime model. This is a proposal to extend the OCaml language with destructors, move semantics, and resource polymorphism, to improve its safety, efficiency, interoperability, and expressiveness. It builds on the ownership-and-borrowing models of systems programming languages (Cyclone, C++11, Rust) and on linear types in functional programming (Linear Lisp, Clean, Alms). It continues a synthesis of resources from systems programming and resources in linear logic initiated by Baker. It is a combination of many known and some new ideas. On the novel side, it highlights the good mathematical structure of Stroustrup’s “Resource acquisition is initialisation” (RAII) idiom for resource management based on destructors, a notion sometimes confused with finalizers, and builds on it a notion of resource polymorphism, inspired by polarisation in proof theory, that mixes C++‘s RAII and a tracing garbage collector (GC). The proposal targets a new spot in the design space, with an automatic and predictable resource-management model, at the same time based on lightweight and expressive language abstractions. It is backwards-compatible: current code is expected to run with the same performance, the new abstractions fully combine with the current ones, and it supports a resource-polymorphic extension of libraries. It does so with only a few additions to the runtime, and it integrates with the current GC implementation. It is also compatible with the upcoming multicore extension, and suggests that the Rust model for eliminating data-races applies. Interesting questions arise for a safe and practical type system, many of which have already been thoroughly investigated in the languages and prototypes Cyclone, Rust, and Alms.
A theory of effects and resources: adjunction models and polarised calculi curien-2016-a
Polarised Intermediate Representation of Lambda Calculus with Sums munchmaccagnoni-2015-polarised
Cites 40 works (3 here)
With notes (3)
Models of a Non-associative Composition munchmaccagnoni-2014-models
Focalisation and Classical Realisability munchmaccagnoni-2009-focalisation
Introduction to Higher-Order Categorical Logic lambek_scott_1986
External (37)
- A functional functional interpretation (2014)
- Syntax and models of a non-associative composition of programs and proofs (2013)
- Delimited control operators prove Double-negation Shift (2012)
- Realizability algebras II : new models of ZF + DC (2012)
- A Dynamic Interpretation of the CPS Hierarchy (2012)
- An Intuitionistic Logic that Proves Markov's Principle (2010)
- Realizability in classical logic (2009)
- Control reduction theories: the benefit of structural substitution (2008)
- An approach to call-by-name delimited continuations (2008)
- Structures de réalisabilité, RAM et ultrafiltre sur N (2008)
- A type-theoretic foundation of delimited continuations (2007)
- A static simulation of dynamic delimited control (2007)
- Portable and high-level access to the stack with continuation marks (2006)
- Adjunction models for call-by-push-value with stacks (2005)
- Separation with streams in the λμ-calculus (2005)
- A type-theoretic foundation of continuations and prompts (2004)
- Call-by-value is dual to call-by-name (2003)
- Minimal classical logic and control operators (2003)
- Completeness of Continuation Models for λμ-Calculus (2002)
- Étude de la polarisation en logique (2002)
- Locus Solum: From the rules of logic to the logic of rules (2001)
- The duality of computation (2000)
- Classical logic, continuation semantics and abstract machines (1998)
- A new deconstructive logic: linear logic (1997)
- A CPS-translation of the λμ-calculus (1994)
- Lambda-calculus, types and models (1993)
- A computational analysis of Girard's translation and LC (1992)
- A new constructive logic: classic logic (1991)
- An evaluation semantics for classical proofs (1991)
- Higher-order critical pairs (1991)
- Abstracting control (1990)
- A formulae-as-type notion of control (1990)
- Extracting constructive content from classical proofs (1990)
- A syntactic theory of sequential control (1987)
- Classically and intuitionistically provably recursive functions (1978)
- Untersuchungen über das logische Schließen. I (1935)
- Dialogue categories and chiralities