加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

haskell – 从属类型:依赖对类型如何类似于不相交联合?

发布时间:2020-12-14 01:05:58 所属栏目:百科 来源:网络整理
导读:我一直在研究依赖类型,我理解以下: 为什么universal quantification表示为依赖函数类型。 ?(x:A).B(x)表示“对于类型A的所有x,存在类型B(x)的值”。因此,它被表示为一个函数,当给定任何类型A的值x返回类型B(x)的值。 为什么existential quantification
我一直在研究依赖类型,我理解以下:

>为什么universal quantification表示为依赖函数类型。 ?(x:A).B(x)表示“对于类型A的所有x,存在类型B(x)的值”。因此,它被表示为一个函数,当给定任何类型A的值x返回类型B(x)的值。
>为什么existential quantification表示为依赖对类型。 ?(x:A).B(x)表示“存在类型A的x,其中存在类型B(x)的值”。因此,它被表示为一对,其第一元素是类型A的特定值x,并且其第二元素是类型B(x)的值。

Aside:有趣的是,通用量化始终用于material implication,而存在量化始终用于logical conjunction。

无论如何,维基百科的文章dependent types指出:

The opposite of the dependent type is the dependent pair type,dependent sum type or sigma-type. It is analogous to the coproduct or disjoint union.

一个对类型(通常是一个产品类型)是如何类似于一个不相交的联合(它是一个和类型)?这一直困惑我。

此外,依赖函数类型如何与产品类型类似?

混淆起因于对Σ类型的结构使用类似的术语以及它的值如何看起来像。

Σ(x:A)B(x)的值是一对(a,b),其中a∈A和b∈B(a)。第二个元素的类型取决于第一个元素的值。

如果我们看一下Σ(x:A)B(x)的结构,对于所有可能的x∈A,它是B(x)的一个不相交的联合(联产)。

如果B(x)是常数(与x无关),则Σ(x:A)B将只是| A | B的副本,即A?B(2种类型的产品)。

如果我们看看Π(x:A)B(x)的结构,它是所有可能的x∈A的B(x)的乘积。其值可以被视为| A | -tuple,其中第a个分量是类型B(a)。

如果B(x)是常数(独立于x),那么Π(x:A)B将只是A→B – 从A到B的函数,即使用集理论符号B?的| A |的副本。

因此,Σ(x∈A)B(x)是由A的元素索引的| A | – 联合序列,而Π(x∈A)B(x)一个。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读