DeepAI
Log In Sign Up

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

01/08/2021

Polymorphic System I

System I is a simply-typed lambda calculus with pairs, extended with an ...
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...
07/07/2020

The Vectorial Lambda Calculus Revisited

We revisit the Vectorial Lambda Calculus, a typed version of Lineal. Vec...
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...
11/20/2020

Gradualizing the Calculus of Inductive Constructions

Acknowledging the ordeal of a fully formal development in a proof assist...
05/01/2018

Index-Stratified Types (Extended Version)

We present Tores, a core language for encoding metatheoretic proofs. The...
08/01/2018

Explicit Auditing

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