n实验室咖喱

上下文

集合论

类型理论

自然扣除 元语言,实用基础

  1. 类型形成规则
  2. 术语引入规则
  3. 术语消除规则
  4. 计算规则

类型理论(依赖的,紧张的,观测类型理论,同伦型理论)

语法 目标语言

计算三位一体=
命题作为类型+程序作为证据+关系类型理论/范畴理论

逻辑集合论(内部逻辑第页,共页)范畴理论类型理论
命题设置对象类型
谓语集合族显示形态从属类型
证明要素广义元素学期/程序
切割规则作文属于对形态进行分类/拉回属于显示地图替代
引入规则对于含义科尼特用于hom传感器附加λ
消除规则对于含义单元用于hom传感器附加应用
切割消除对于含义其中一个锯齿形恒等式用于hom传感器附加β还原
身份消除含义其他的锯齿形身份用于hom传感器附加eta转换
真的单子终端对象/(-2)-截断对象h级0-类型/单元类型
空集合初始对象空类型
命题,真值subsingleton公司次终端对象/(-1)-截断对象h-命题,纯粹命题
逻辑连接笛卡尔积产品产品类型
分离不相交联合(支持第页,共页)副产物((-1)-截断第页,共页)总和类型(支架类型第页,共页)
含义功能集(到subsingleton公司)内部hom(到次终端对象)函数类型(到h-命题)
否定功能集进入之内空集合内部hom进入之内初始对象函数类型进入之内空类型
通用量化编入索引的笛卡尔积(属于子角体)从属产品(属于次终端对象)依赖产品类型(属于h-命题)
存在量词编入索引的不相交联合(支持第页,共页)相依和((-1)-截断第页,共页)相依和类型(支架类型第页,共页)
逻辑等价双射集同构对象等价类型
支架组支持对象/(-1)-截断命题截断/支架类型
n个图像属于态射进入之内终端对象/n截断n截断模态
平等对角线函数/对角线子集/对角线关系路径空间对象身份类型/路径类型
完全呈现集设置离散对象/0-截断对象h级2-类型/设置/h组
设置设置具有等价关系内部0-广群Bishop集合/刚毛状的用它伪等效关系实际的等价关系
等价类/商集合商类型
归纳上极限感应式,W型,M型
较高的归纳高等科利米特高电感型
-0截断 高等科利米特商归纳型
造币术限制共生产型
预设类型没有身份类型
设置属于真理价值观子对象分类器命题类型
话语领域宇宙对象分类器类型universe
模式闭合算子, (幂等的)单子模态类型理论,monad(计算机科学)
线性逻辑(对称的,关闭)单体范畴线性类型理论/量子计算
防护网字符串关系图量子电路
(缺少)收缩规律(缺少)对角线的无克隆定理
综合数学领域专用嵌入式编程语言

同伦能级

语义学

范畴理论

目录

想法

Currying是一个将两个变量上的操作转换为一个变量上操作的过程,该操作返回以第二个变量为参数的函数。该术语用于计算机科学λ演算在这种情况下,一次只对一个变量进行操作在技术上通常很重要。但是范畴理论也将其视为自然同构在一个闭单体范畴,即普遍性指数对象; 因此,它也被称为指数转置.

这个反向操作是,以简单的方式计算机科学,已调用解开褶皱.

Currying以以下名称命名哈斯凯尔·加里,根据斯蒂格勒同名律,因为它是由发明的莫西·施芬克尔(Moses Schönfinkel)(也许Curry帮助推广了lambda微积分的应用?)

定义

In-set理论

集合论,currying转换功能在上定义产品集函数中的值功能集也就是说,从

(f):X(X)×Y(Y)Z轴,f\冒号X\乘以Y\到Z,

我们咖喱 (f)(f)生产

(f)^:X(X)Z轴 Y(Y)\冒号X\到Z^Y的帽子

根据公式

(f)^(x个)=((f)(x个,)).\帽子{f}(x)=(y\mapstof(x,y))。

这只是应用功能集 Z轴 Y(Y)Z^Y轴.

依赖型理论

依赖型理论,currying转换在依赖对类型到一系列元素,这些元素在相关函数类型也就是说,从

z(z): x个:X(X)Y(Y)(x个)(f)(z(z)):Z轴(z(z))z: \sum_{x:x}Y(x)\vdash f(z):z(z)

我们咖喱 (f)(f)生产

x个:X(X)(f)^(x个): :Y(Y)(x个)Z轴(x个,)x: x\vdash\hat{f}(x):\prod_{y:y(x)}Z(x,y)

根据公式

(f)^(x个)(λ.(f)(x个,)).\帽子{f}(x)\coloneqq(\lambda y.f(x,y))。

这只是应用依赖函数类型 :Y(Y)(x个)Z轴(x个,)\prod_{y:y(x)}Z(x,y).

在lambda微积分和CCC中

类似地,在λ演算,currying是一种将多个参数中函数的研究简化为一个参数中的函数的方法。例如,如果ϕ是lambda项,其中的变量x个x个自由发生(以便ϕ实际上是的“功能”x个x个),lambda演算语法支持currified表达式λx个.λ.ϕ\λx.λy.φ,表示直观的表达x个(ϕ)x\mapsto(y\mapsto\phi)一次提取一个变量。

后来(由Lawvere)观察到,这只是一个更普遍的“curryfication”的特例笛卡尔闭范畴(例如不错的空间类别),其中有一个自然的语素双射:

X(X)×Y(Y)Z轴X(X)Z轴 Y(Y)\压裂{X\次Y\到Z}{X\到Z^Y}

实际上,笛卡尔闭范畴是lambda演算的模型。

一般来说

事实上,咖喱可以用任何(右)闭单体范畴。在这种情况下,currying转换态射谁的来源是一个张量积到一个态射目标是一个内部hom也就是说,从

(f):X(X)Y(Y)Z轴,f\冒号X\音符Y\到Z,

我们咖喱 (f)(f)生产

(f)^:X(X)[Y(Y),Z轴].\帽子{f}\冒号X\到[Y,Z]。

咖喱在X(X),Y(Y),Z轴十、 Y、Z; 也就是说,(f)(f)^f\mapsto\hat{f}是一个自然同构(在任何封闭的单体类中)。

当前使用哪个变量?

按照惯例,咖喱总是在最后的变量。这很好地符合了这样一个惯例,即产品在左侧关联,而内部homs在右侧关联。更明确地说,如果我们使用“×\次'对于产品(即使它不是笛卡尔)和''表示内部hom(因此我们必须使用另一个符号,例如'\vdash公司',对于外部hom),那么我们不需要括号来概括currying

(f):X(X)×Y(Y)Z轴f\冒号X\次Y\字节数Z

生产

(f)^:X(X)Y(Y)Z轴;\帽子{f}\colon X\vdash Y\to Z;

通过咖喱几个n个1n-1个一次又一次,我们转身

(f):X(X) 1××X(X) n个Z轴f\冒号X_1\times\cdots\times X_n\vdash Z

进入之内

(f)^^:X(X) 1X(X) 2X(X) n个Z轴.\hat{\overset\vdots{\hat{f}}\colon X_1\vdash X_2到\cdots\到X_n到Z。

这并不能概括为n个=0n=0,这是一种方法,可以看出即使是非类型化的lambda演算也实际上有两个对象,其中一个是终端对象 11其中一个可以发挥其他作用。

在一个封闭的编织单体类(例如关闭对称单体范畴,并包括笛卡尔闭合范畴,如设置设置以及lambda微积分的模型),我们还可以“curry through the first variable”或“co-curry”来生成映射

(f)ˇ:Y(Y)X(X)Z轴,\检查{f}\colon Y\vdash X\到Z,

但计算机科学家(甚至是非常谨慎的数学家)会将此视为一种复合运算,其第一步是作文使用编织 Y(Y)×X(X)X(X)×Y(Y)Y次X次X次Y次.

在左闭单体范畴中,咖喱不存在,但协同咖喱存在。也许这个产品应该在右边的左闭单体类别中关联?

另请参阅

参考文献

为了讨好依赖型理论,请参阅

上次修订时间:2023年1月7日01:28:24。请参阅历史获取所有贡献的列表。