线性逻辑的民间模型是什么?


23

线性类型在PL中最常见的应用可能是使用它们来提供控制别名的语言(即,线性值或多或少都具有指向它的单个指针)。

但是这种用法和线性逻辑的典型称谓模型之间存在一些不匹配。IIRC的Benton表明,如果笛卡尔封闭类别具有很强的可交换单子,那么其代数类别将是对称单曲面封闭(即线性逻辑模型)。但是该定理不适用于别名控制用法,因为状态monad不是可交换的。确实,在过去的几年中,辛普森和他的同事们给出了一般强单子的计算,而线性单子不是术语计算。

所以我的问题是,带有状态的线性语言的指称语义是什么?是否存在一个非退化(即张量不是笛卡尔乘积)对称单项封闭类别,可以在其中建模分配,读取和线性更新?


6
我希望您能回答尼尔,而不是问这种问题。;-)
马克·哈曼

5
如果您可以吸引能够回答这个问题的研究人员加入cstheory.stackoverflow.com,那么世界将是一个更好的地方。
戴夫·克拉克

Answers:


9

在我看来,您应该考虑的方向围绕着游戏语义的一般参考和线性逻辑的相关语义,例如基于Conway游戏的语义。 Paul-AndréMelliès和Nicolas Tabareau 对游戏语义中引用的代数描述可能是最好的起点。在本文中,将线性逻辑放宽到所谓的张量逻辑以使事物正常工作,因此它并不是您想要的设置。但是他们确实依赖于Conway游戏,因此肯定与线性逻辑模型有关。他们还没有像线性类型那样真正利用线性,但是我相信,如果需要的话,可以使用这种机制。

工作吉姆·莱尔德(如姓名的博弈语义和指针)和盖伊国琛也可能导致你的追求。Nicholas Wolverson 最近发表的一篇有趣的论文《面向对象语言游戏语义》将这些想法进一步推向了OO环境。他详细考虑了线性线程,一次仅激活一个操作,并描述了如何添加线性类。两者都依赖于线性输入。同样,底层模型严格来说并不是严格的线性逻辑模型,但是很接近。


1
只是好奇的尼尔。这对您有用吗,还是您已经知道所有这些东西了?
戴夫·克拉克

我知道这些东西(但不是很好),但是游戏语义比我要寻找的要复杂得多。大多数人对线性状态有一种直觉,这与老式的Strachey将命令式计算作为单元类型的元素的看法相去不远,而我希望有一个类似于线性状态的模型。基本上,我希望您能在不让他们感到恐惧的情况下向高年级学生展示一些东西。:)Ť一种=小号一种×小号
Neel Krishnaswami 2010年

1
也许Uday Reddy的Global状态被认为是不必要的:对基于对象的语义的介绍,J。Lisp和Symbolic Computation,9(1996):7-76。
戴夫·克拉克

我现在正在阅读,实际上!
Neel Krishnaswami 2010年

7

(天哪,尼尔,这是一个很难回答的问题。)

线性逻辑的“民间模型”无疑是相干空间模型,在Girard的线性逻辑论文(以及“证明和类型”)中进行了讨论。在您描述的意义上,这并不是退化的。

我不确定这种语义是否可以实现线性功能语言。当您谈论分配,读取和线性更新时,您实际上是在谈论实现。因此,也许您的问题可以表述为:“我如何证明使用状态更新的线性函数语言的正确实现?” 我不知道这个答案,但是我认为它必须存在于提出线性更新实现的论文中。


实际上,要证明线性状态实现的正确性太容易了-线性是一种强大的结构约束,因此几乎不需要任何语义来进行这些证明。结果,我不知道线性状态的一种简单的指称语义。与我想要的最接近的两件事是您在基于对象的语义上的工作,以及霍夫曼在隐式复杂性方面的工作中的“长度空间”模型。
Neel Krishnaswami,2012年

实际上,我不会将基于对象的语义描述为对“线性状态”进行建模。它是“顺序状态”和“线性对象”,拿铁是由SCI施加的。理想化Algol的游戏模型在同样的意义上也是“基于对象的”,没有线性的东西。
Uday Reddy

您能否找到可以找到此类正确性证明的参考?(对不起,问题
转给

1
我知道具有状态的线性语言的最简单的可靠证明是Ahmed,Flue和Morisett的“ L3:具有位置的线性语言”。(ttic.uchicago.edu/~amal/papers/linloc-fi07.pdf)在本文中,它们给出了一个简单的逻辑关系,但是提到句法上的进步与保存证明也要通过。
Neel Krishnaswami'2

这是另一件我刚刚注意到的工作。对于斯蒂芬·库珀(Stephen Cooper)的“关于线性类型和命令式更新” 链接,请尝试citeseer 。我应该知道这一点,但是没有。
Uday Reddy'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.