Enriching a Linear/Non-linear Lambda Calculus: A Programming Language for String Diagrams

04/25/2018
by   Bert Lindenhovius, et al.
0

Linear/non-linear (LNL) models, as described by Benton, soundly model a LNL term calculus and LNL logic closely related to intuitionistic linear logic. Every such model induces a canonical enrichment that we show soundly models a LNL lambda calculus for string diagrams, introduced by Rios and Selinger (with primary application in quantum computing). Our abstract treatment of this language leads to simpler concrete models compared to those presented so far. We also extend the language with general recursion and prove soundness. Finally, we present an adequacy result for the diagram-free fragment of the language which corresponds to a modified version of Benton and Wadler's adjoint calculus with recursion.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/30/2021

A Braided Lambda Calculus

We present an untyped linear lambda calculus with braids, the correspond...
research
12/10/2018

Formalization of Metatheory of the Quipper Quantum Programming Language in a Linear Logic

We develop a linear logical framework within the Hybrid system and use i...
research
04/27/2021

The ksmt calculus is a δ-complete decision procedure for non-linear constraints

ksmt is a CDCL-style calculus for solving non-linear constraints over re...
research
01/26/2022

Linear lambda-calculus is linear

We prove a linearity theorem for an extension of linear logic with addit...
research
05/20/2020

On embedding Lambek calculus into commutative categorial grammars

Abstract categorial grammars (ACG), as well as some other, closely relat...
research
04/03/2018

The Logical Essentials of Bayesian Reasoning

This chapter offers an accessible introduction to the channel-based appr...
research
09/15/2020

String Diagrams for Regular Logic (Extended Abstract)

Regular logic can be regarded as the internal language of regular catego...

Please sign up or login with your details

Forgot password? Click here to reset