我无法比 Wikipedia 更好地解释lambda cube一词:
[...] λ-cube 是一个框架,用于探索 Coquand 构造演算中的细化轴,从简单类型的 lambda 演算开始,作为放置在原点的立方体的顶点,以及构造演算(高阶依赖类型的多态 lambda 演算)作为其截然相反的顶点。立方体的每个轴都代表一种新的抽象形式:
- 术语取决于类型或多态性。System F,又称二阶 lambda 演算,是通过仅施加此属性而获得的。
- 类型取决于类型或类型运算符。仅通过强加此属性即可获得具有类型运算符 λω 的简单类型 lambda 演算。与系统 F 结合产生系统 Fω。
- 类型取决于术语或依赖类型。仅施加此属性会产生 λΠ,这是一个与 LF 密切相关的类型系统。
所有八个演算都包括最基本的抽象形式、依赖于术语的术语、简单类型的 lambda 演算中的普通函数。立方体中最丰富的演算,包含所有三个抽象,是构造演算。所有八个结石都在强烈规范化。
是否可以为每个改进找到 Java、Scala、Haskell、Agda、Coq 等语言的代码示例,而这些改进在缺乏这种改进的微积分中是不可能实现的?