Functional Pearl: The Distributive λ-Calculus

02/19/2020
by   Beniamino Accattoli, et al.
0

We introduce a simple extension of the λ-calculus with pairs—called the distributive λ-calculus—obtained by adding a computational interpretation of the valid distributivity isomorphism A (B∧ C) ≡ (A B) ∧ (A C) of simple types. We study the calculus both as an untyped and as a simply typed setting. Key features of the untyped calculus are confluence, the absence of clashes of constructs, that is, evaluation never gets stuck, and a leftmost-outermost normalization theorem, obtained with straightforward proofs. With respect to simple types, we show that the new rules satisfy subject reduction if types are considered up to the distributivity isomorphism. The main result is strong normalization for simple types up to distributivity. The proof is a smooth variation over the one for the λ-calculus with pairs and simple types.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/08/2021

Polymorphic System I

System I is a simply-typed lambda calculus with pairs, extended with an ...
research
02/16/2019

Normalization by Evaluation for Call-by-Push-Value and Polarized Lambda-Calculus

We observe that normalization by evaluation for simply-typed lambda-calc...
research
07/07/2020

The Vectorial Lambda Calculus Revisited

We revisit the Vectorial Lambda Calculus, a typed version of Lineal. Vec...
research
01/11/2022

A Faithful and Quantitative Notion of Distant Reduction for Generalized Applications (Long Version)

We introduce a call-by-name lambda-calculus λ J with generalized applica...
research
05/01/2018

Index-Stratified Types (Extended Version)

We present Tores, a core language for encoding metatheoretic proofs. The...
research
08/06/2019

A Dependently Typed Multi-Stage Calculus

We study a dependently typed extension of a multi-stage programming lang...
research
08/01/2018

Explicit Auditing

The Calculus of Audited Units (CAU) is a typed lambda calculus resulting...

Please sign up or login with your details

Forgot password? Click here to reset