Log In Sign Up

Functional Pearl: The Distributive λ-Calculus

by   Beniamino Accattoli, et al.

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.


page 1

page 2

page 3

page 4


Polymorphic System I

System I is a simply-typed lambda calculus with pairs, extended with an ...

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

We observe that normalization by evaluation for simply-typed lambda-calc...

The Vectorial Lambda Calculus Revisited

We revisit the Vectorial Lambda Calculus, a typed version of Lineal. Vec...

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...

Gradualizing the Calculus of Inductive Constructions

Acknowledging the ordeal of a fully formal development in a proof assist...

Index-Stratified Types (Extended Version)

We present Tores, a core language for encoding metatheoretic proofs. The...

Explicit Auditing

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