![]() | ||
In mathematical logic and type theory, the λ-cube is a framework for exploring the axes of refinement in Coquand's calculus of constructions, starting from the simply typed lambda calculus (written as λ→ in the cube diagram to the right) as the vertex of a cube placed at the origin, and the calculus of constructions (higher-order dependently typed polymorphic lambda calculus; written as λPω in the diagram) as its diametrically opposite vertex. Each axis of the cube represents a new form of abstraction:
All eight calculi include the most basic form of abstraction, values depending on values, ordinary functions as in the simply typed lambda calculus. The richest calculus in the cube, with all three abstractions, is the calculus of constructions. All eight calculi are strongly normalizing.
Subtyping however is not represented in the cube, even though systems like
The idea of the cube is due to the mathematician Henk Barendregt (1991). The framework of pure type systems generalizes the lambda cube in the sense that all corners of the cube, as well as many other systems can be represented as instances of this general framework. This framework predates lambda cube by a couple of years. In his 1991 paper, Barendregt also defines the corners of the cube in this framework.
In his Habilitation à diriger les recherches Lambda-Prolog de A à Z... ou presque [1], Olivier Ridoux gives a cut-out template of the Lambda cube (p. 70) and also a dual representation of the cube as an octahedron, where the 8 vertices are replaced by faces, as well as a dual representation as a dodecahedron, where the 12 edges are replaced by faces.