双色构造微积分的作用是什么?


9

因此,我正在阅读一些有关阐述的内容,特别是基于双色构造演算的算法,我有些困惑。我不明白该广告的确切目的是什么CCbi是。似乎与CC函数的隐式参数和显式参数之间有区别。特别是,我看不到它如何允许您编写(id0) 代替 (idN0)。如果我们假设一个用于全局定义的系统,那么,

id:(ΠA|Type.(Πx:A.A))

id=(λA|Type.(λx:A.x))

规则真的允许吗 (id0)?当然语法可以,但是我在键入关系中看不到它。我想念什么吗?我是否了解角色CCb一世 错误地?

另外,会合的财产不会丢失吗?我想我的问题是,我在阅读有关精心制作的文章时,并没有读太多关于CCbi在这之前。介绍它的好论文是什么?

编辑:更具体地说,我问(id0) 被接受代替 (idN0) 当明确和隐含的规则 Π应用程序是相同的模语法。我认为两者之间没有区别:| 两者的规则似乎相同。

编辑:我不是在谈论构造的隐式演算,这是一个不同的理论,对于显式有不同的规则Π的(应用程序与生成。)

编辑:好的,我想我已经开始理解这一点,但是直到我确定之前,我不会回答这个问题。基本上(id0) 不键入检查,实际上它只是用来说明 (idN0)在类型检查之前或作为类型检查算法的第二责任而完成。本质上,这些隐式演算旨在用作接口(用户端)语言,在对术语进行类型检查之前,这些语言将被精化为通常的(显式)演算或至少隐式演算的显式片段。如果真是这样,那么我想我会看到全局。有人可以确认吗?


2
就像我在下面说的那样,您的直觉是正确的:双色构造演算是显式演算,其中用户省略但由“前端”阐述的参数被明确标记。同样,由于减少了beta + eta,融合丢失了,但是如果仅限于beta,则正确。
科迪

Answers:


9

在结构的隐式微积分扩展纯类型系统的交点绑定和子类型中,亚历山大·米克尔介绍了结构的隐式微积分的基本概念,我认为这是双色结构的微积分的同义词。

关键是(除其他事项外)进行演算,而不会到处都有显式类型注释的混乱。但是,类型推断是(非常可能)不确定的。

在这个演算中,如果我们采取 一世d=λXX,则可以得出

一世dXŤÿpËXX
通过简单地连续使用显式乘积和隐式乘积规则。然后,隐式乘积的实例化规则允许
一世dñ一个Ťñ一个Ť
所以
一世d 0ñ一个Ť
该系统甚至允许在未键入的术语上进行主题缩减和融合(实际上,对于带有抽象注释的结石而言,这是失败的)。所有这些都可以在亚历山大的论文中找到,可悲的是法文。恐怕我不确定这些结果是否有更好的参考。

我确实知道您答案的第一部分,但我想我应该在最初的问题中更加具体。也就是说,如果id的类型为(\ Pi X | Type。X-> X),则(id 0)到底是怎么允许的,因为似乎APP规则对于隐式\ Pi和显式\ Pi都是相同的。在构造的隐式演算中,这实际上是一种不同的理论,事实并非如此,因为它被分为APP和GEN。为了验证它是否不同,请检查您引用的论文中的标题“带有'真正隐式'参数的微积分”。
安东尼

1
关于可决定性。您所引用的论文推测其理论是不确定的。它引用的论文(我猜是构造纸的“原始”双色演算)声称是可判定的,但没有明确证明它。我在发布此问题后阅读了它,看来它绝对应该是可以决定的,并且取决于语法限制是否可以融合。另一方面,我仍然对最初的困惑感到困惑:\
安东尼

也许您应该告诉我们您正在看哪篇论文。
科迪

2
好的,我看了Marko Luther所著的《类型论中的阐述与消除》,我想这是您的参考。在那种情况下,显式乘积和隐式乘积之间没有语义上的区别,实际上双色系统是构造演算的保守扩展。发生的情况是,您使用精化来获取没有显式参数的术语,从而将其转换为完全注释的术语:id !1 0精化为id Nat 0。在本文中,第4节介绍了详细内容
。– Cody

是的,这是我开始撰写的论文,我只是没有通过有关 CCb一世我也没有意识到他是如何依次发展一种理论的,而且早期的发展仅用作教学法。原谅我没有提起它,我以为微积分因其名字而广为人知。
安东尼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.