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


11

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


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

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

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

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

Answers:


11

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

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

                    处理

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

                   在此处输入图片说明

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

(A⊗B)⊥=A⊥⅋B⊥

在该读出是处理与连通甲⊗ 乙。A⊥⅋B⊥A⊗B

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

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.