Tag. linear-logic
References (31)
Impredicativity in Linear Dependent Type Theory speight-2026-impredicativity
Adequate Losses via Quantitative Linear Logic capucci-2026-adequate
Linear Effects, Exceptions, and Resource Safety: A Curry-Howard Correspondence for Destructors congard-2026-linear
Quantitative Linear Logic for Neuro-Symbolic Learning and Verification flinkow-2026-quantitative
From Linearity to Borrowing wagner-2025-from
Asymptotic distribution of parameters in trivalent maps and linear lambda terms bodini-2025-asymptotic
Classical Linear Logic in Perfect Banach Lattices amorim_witzman_kozen_2025
A Semantic Proof of Generalised Cut Elimination for Deep Inference atkey-2024-a
Stabilized profunctors and stable species of structures fiore-2024-stabilized
Displayed Monoidal Categories for the Semantics of Linear Logic ahrens-2024-displayed
Fixpoint constructions in focused orthogonality models of linear logic fiore-2023-fixpoint
LNL polycategories and doctrines of linear logic shulman-2023-lnl
A two-level linear dependent type theory fu2023twolevellineardependenttype
*-Autonomous Envelopes and Conservativity shulman-2021-autonomous
Bifibrations of Polycategories and Classical Linear Logic blanco-2020-bifibrations
A theory of linear typings as flows on 3-valent graphs zeilberger-2018-a
FabULous Interoperability for ML and a Linear Language scherer_etal_2018
Instead of a monolithic programming language trying to cover all features of interest, some programming systems are designed by combining together simpler languages that cooperate to cover the same feature space. This can improve usability by making each part simpler than the whole, but there is a risk of abstraction leaks from one language to another that would break expectations of the users familiar with only one or some of the involved languages.
We propose a formal specification for what it means for a given language in a multi-language system to be usable without leaks: it should embed into the multi-language in a fully abstract way, that is, its contextual equivalence should be unchanged in the larger system.
To demonstrate our proposed design principle and formal specification criterion, we design a multi-language programming system that combines an ML-like statically typed functional language and another language with linear types and linear state. Our goal is to cover a good part of the expressiveness of languages that mix functional programming and linear state (ownership), at only a fraction of the complexity. We prove that the embedding of ML into the multi-language system is fully abstract: functional programmers should not fear abstraction leaks. We show examples of combined programs demonstrating in-place memory updates and safe resource handling, and an implementation extending OCaml with our linear language.