【发布时间】:2023-03-22 09:23:01
【问题描述】:
我一直在研究依赖类型,我了解以下内容:
- 为什么universal quantification 表示为依赖函数类型。
∀(x:A).B(x)表示“对于所有A类型的x,有一个B(x)类型的值”。因此,它表示为一个函数,当给定A类型的 any 值x时,它会返回一个B(x)类型的值。 - 为什么existential quantification 表示为依赖对类型。
∃(x:A).B(x)的意思是“存在一个A类型的x,它有一个B(x)类型的值”。因此,它表示为一对,其第一个元素是A类型的特定值x,其第二个元素是B(x)类型的值。
旁白:有趣的是,普遍量化总是与material implication一起使用,而存在量化总是与logical conjunction一起使用。
无论如何,dependent types 上的*文章指出:
依赖类型的对立面是依赖对类型、依赖和类型或sigma-type。它类似于联积或不相交并集。
pair 类型(通常是 product 类型)如何类似于不相交的 union(sum 类型)?这一直让我很困惑。
另外,依赖函数类型与产品类型有何相似之处?
【问题讨论】:
标签: haskell agda dependent-type idris curry-howard