线性逻辑背后的直觉是什么?


11

我试图了解线性逻辑,以更好地了解线性类型系统。但是,当我阅读规则时,却无法像在模态逻辑中所做的那样获得直觉-表示是必需的,就像在Kripke框架中一样对每个可到达的世界都是必需的[ is is可以比照。但是我找不到任何关于二元性的直观解释,以及哪些连词/取对(如果有)对应于和。一个一个一个一个AAAAA


如果您想了解Girard背后的直觉,则可以查看Girard的原始论文。问题仍然是过于笼统的imo,答案是看Wikipedia页面上的线性逻辑。
卡夫

5
我同意这有点太麻烦了,而且绝对不是研究水平,也许您应该在CS Stack Exchange上提问。但是,我不鼓励您使用吉拉德(Girard)的原始论文作为线性逻辑的切入点。也许维基百科是一个更好的起点。
达米亚诺·马扎

这是相当广泛的。也许有一种建议可能会开始将公式视为可以花费的“货币”,而不是真理的陈述。然后,结合可能是ab这意味着我们可以花既是a硬币和b硬币。另一种连接可以是a&b,这意味着我们可以在支出a和支出之间进行选择b(但不能同时选择两者!)。正如Damiano所建议的,您可以在Wikipedia上找到一些示例。

@chi我不确定“资源解释”是理解LL中对偶性的最佳方法。流程的解释更容易理解。
马丁伯杰

Answers:


11

我不确定这个问题是否适合CSTheory,但是鉴于它已经在收集投票,​​因此,如果将该问题发布在cs.stackexchange上,则可能有人会给出答案。

为了理解线性逻辑的对偶性的概念,它使合取和分离的作用远比我们在常规逻辑中所习惯的分开,我建议不要在资源方面考虑线性逻辑(尽管这是一个重要的读物)。而是将线性逻辑公式A 视为在端口/名称/通道进行通信的进程。据我所知,这种解释已首先在(1)中得到充实,但在吉拉德的原始作品中已经提到过。如图:()A

                    处理

(我不知道如何正确地中心的图像在这里。)线性结合被解释为正在运行的进程一个并行。过程 通信一个b 在它的端口,其中一个来自 b的通信。ABABAB (a,b)aAbB

                   在此处输入图片说明

对偶化 (这是线性逻辑的取反)用于切换输入和输出。因此,双(.)AB

(AB)=AB

在该读出是处理与连通ABAB

线性逻辑等效的析取可以给出类似的过程理论读数。公式

A & B

还应该将它们视为并行的两个进程B,但是它们没有主动发送消息,而是等待环境决定运行哪个进程。因此,A B坐在那里,在其通道上等待一些信息,这些信息决定了A B是应以A还是以B的身份运行。这是一个“平行”版本˚F /ħ ë ñ / é 小号ê在顺序programmaning语言。双重 A B ABA&BA&BABif/then/else(A&B)A&B

一种=一种

可以看作是向发送1位信息的过程,即:“以A继续”或“以B继续”。这类似于在 ˚F ř ü Ë ħ é Ñ P Ë 小号ë Q评估到P˚F ˚F 小号ë ħ é Ñ P Ë 小号ë Q评估到Q,不同之处在于选择之间一种一种一世F Ť[RüË ŤHËñ P ËsË P一世F F一种sË ŤHËñ P ËsË  B现在由环境制成。一种

!运算符还具有过程理论的解释:如果 视为过程,则可以将A理解为并行运行无限多个进程A。一种一种一种

在该读出公理线性逻辑成为简单的“线”的,从过程转发消息到过程。对公理的这种解释已经在吉拉德的证明网中(3)。一种一种一种一种

这个过程理论的解释很有影响力,并引起了很多后续工作,例如会话类型的(2)。尽管如此,在某些极端情况下它还是有些尴尬,据我所知,即使在2017年,它也无法完美地适用于完整线性逻辑。


1. S. Abramsky,《线性逻辑的计算解释》
2. P. Wadler,命题作为会议
3.维基百科,证明网

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.