CS逻辑应用程序的指针


17

我是数学专业的研究生,具有扎实的逻辑背景。我参加了为期一年的逻辑研究生课程以及有限模型理论和强制和集合理论的研究生课程。大多数CS文本似乎只假设逻辑的背景非常温和,其中大部分涵盖命题逻辑和一阶逻辑的基础。

我想获得一些关于CS应用程序去向的指导,在CS应用程序中使用了来自逻辑的大量材料。我的兴趣之一是类型理论和形式方法。除了模型检查和编程语言入门书籍外,有人可以建议一些不错的阅读材料吗?


我做了这份CW,因为名单很长。只需看一下《计算机科学逻辑手册》和《人工智能逻辑手册》的11卷。
卡夫(Kaveh),

下面的论文是一个很好的起点:-Samuel R. Buss,Alexander A. Kechris,Anand Pillay和Richard A. Shore,“ 二十一世纪数学逻辑的前景 ”,2001年。山姆·巴斯(Sam Buss)。
卡韦

可以扩展该问题并以统一的结构回答,从而使该页面最终成为有关计算逻辑的有用起点资源。请加入有关meta 的讨论
Vijay D

Answers:


15

我在这里简要回顾了一些领域,试图将重点放在吸引具有高级数学逻辑背景的人的想法上。

有限模型理论

从计算机科学的角度来看,经典模型理论的最简单限制是研究有限宇宙上的结构。这些结构以关系数据库,图形和计算机科学中无处不在的其他组合对象的形式出现。第一个观察结果是,一阶模型理论的几个基本定理在局限于有限模型时会失效。这些包括紧致性定理,Godel完备性定理和超乘积构造。Trakhtenbrot表明,与经典的一阶逻辑不同,有限模型的可满足性是不确定的。

该区域的基本工具是Hanf本地,Gaifman本地以及Ehrenfeucht-Fraisse游戏的众多变体。研究的主题包括无限逻辑,带计数的逻辑,定点逻辑等,始终侧重于有限模型。有工作致力于一阶逻辑的有限变量片段中的表达性,这些逻辑通过卵石博弈来表征。探究的另一个方向是确定经典逻辑的属性,这些属性在受限于有限模型的情况下仍然可以幸免。Rossman在该方向上的最新结果表明,某些同态保存定理仍然适用于有限模型。

  1. 有限元模型理论,艾宾浩斯和弗卢姆
  2. 有限模型理论的要素
  3. 关于Ehrenfeucht-Fraisse游戏中的获胜策略,Arora和Fagin,1997年。
  4. 同态保存定理,罗斯曼

命题演算μ

60年代后期的工作表明,程序的许多特性可以用命题逻辑的扩展表示,这些逻辑支持定点推理。所述modal- 演算是在此期间已经发现了广泛的自动化形式方法应用而开发的一个逻辑。许多形式化方法与时间逻辑或Hoare式逻辑相关,并且其中许多可以从μ演算的角度来看。事实上,我听到有人说,μ演算是时间逻辑的汇编语言。μμμ

Kozen 在介绍微积分的论文中给出了公理化,并且仅证明了它对于逻辑的有限片段是合理且完整的。在Walukiewicz给出证明(基于无限自动机)之前,完整性证明是逻辑计算机科学中的一大难题。μ演算的模型理论 有很多丰富的结果。类似于面包车本瑟姆定理为模态逻辑,亚宁和Walukiewicz证明了μ演算是意味深长相当于一元二阶逻辑的互模拟不变片段。该μμμμμ微积分的特征还在于无限树上的奇偶游戏和自动机。该逻辑的可满足性问题已完成EXPTIME,Emerson和Jutla表明该逻辑具有较小的模型属性。布拉德菲尔德表明的交替分层结构演算严格,而Berwanger表明变量层次也是严格。在这一领域中使用的重要经典工具是拉宾定理和马丁的确定性定理。μ

  1. 命题演算的结果μ,Kozen,1983年
  2. 微积分的基础知识μ Arnold和Niwinski,2001年
  3. Kozen命题微积分的公理化的完成 μ,Walukiewicz 1995
  4. 模态逻辑与计算μ,Bradfield and Stirling,2001
  5. 模态微积分交替层次是严格的,布拉德菲尔德,1996年
  6. mu演算的变量层次结构是严格的,Berwanger,E。Grädel和G. Lenzi,2005年

线性时序逻辑

线性时间逻辑从哲学逻辑被引入计算机科学,以推理计算机程序的行为。它被认为是一种很好的逻辑,因为它可以表达不变性(无错误)和终止之类的属性。时间逻辑的证明理论是由Manna和Pnueli(以及其他人,后来)在他们的文章和书中开发的。LTL的模型检查和可满足性问题都可以通过在无限单词上的自动机来解决。

Pnueli在其原始论文中介绍了程序推理的逻辑,也证明了有关LTL的基本知识。Vardi和Wolper在Buchi自动机中将LTL公式简化了很多。与时间逻辑的联系导致人们对算法进行了深入的研究,这些算法可有效地从LTL导出自动机,以及确定和补充Buchi自动机。坎普的定理表明,LTL与,直到模态在表达上等效于具有阶数关系的单子一阶逻辑。正在进行的工作将这些结果扩展到密集线性阶次和时间间隔上的逻辑。Etessami和Wilke为LTL开发了Ehrenfeucht-Fraisse游戏的一种变体,并使用它们来证明直到等级严格。另一项工作是扩展LTL以表达任意的 regular属性。这导致线性时间μ演算,是模态μ演算的线性时间对应物。与模态对应物不同,线性时间交替层次在第2级崩溃。ωμμ

  1. 程序的时间逻辑,Pnueli 1977
  2. 从教堂到PSL,Vardi,2008年
  3. 线性时间逻辑的自动机理论方法,Vardi和Wolper,1986年
  4. 无功和并发系统的时间逻辑:规范,Manna和Pnueli
  5. Ehsrenfeucht-Fraïssé游戏的时间逻辑逻辑的“直到”层次结构和其他应用,Etessami和Wilke,2000年

计算树逻辑

μ

有限结构上CTL的模型检查问题是在多项式时间内。CTL *的模型检查问题已完成EXPTIME。CTL *的公理化是一个具有挑战性的开放性问题,最终由Reynolds 2001解决。通过Hafer和Thomas的定理为CTL *给出了范本特姆模态逻辑定理和Kamp的LTL定理类似物,证明了CTL *对应于二叉树上的单子二阶逻辑的片段。Hirschfeld和Rabinovich后来的表征是,CTL *在表达上等同于具有路径量化功能的MSO的双模拟不变片段。

  1. 再探“有时”和“永不”:关于分支与线性时间的时态逻辑,爱默生和哈珀恩,1986年
  2. 关于CTL的表达能力,穆勒,拉比诺维奇,1999年
  3. 二叉树单峰理论中的计算树逻辑CTL *和路径量词,Hafer和Thomas,1987年
  4. 完全计算树逻辑的公理化,雷诺兹,2001年

无限词的语言

ω

ωωω-话。此外,他们使用基本拓扑显示每个线性时间属性都可以表示为安全性和活动性的交集。该结果具有重大的实际后果,因为它意味着无需构建复杂的属性检查器,而足以构建安全性和活动性检查器。进一步的减少表明,构建一个不变性检查器和一个终止检查器就足够了。安全-寿命特性描述由Manolios和Trefler扩展到树木,最近又由Clarkson和Schneider在超特性框架中扩展到痕迹集。

  1. 无限词:自动机,半群,逻辑与游戏,Perrin和Pin,2004年
  2. ω
  3. ω
  4. 关于ω语言的句法全等,Maler和Staiger,1993年

无限词自动机

在有语言的地方,计算机科学家将拥有自动机。输入关于无限词和无限树的自动机理论。令人非常遗憾的是,尽管无限词自动机在有限词自动机的两年内就出现了,但是基本计算机科学课程却很少涉及这一基本主题。无限单词和树上的自动机提供了一种非常强大的方法,可以证明对于非常丰富的逻辑族的可满足性的可判定性。

ω

  1. 无限树上的二阶理论和自动机的可判定性,拉宾,1969年
  2. 无限物体上的自动机,Thomas,1988
  3. 自动机:从逻辑到算法,Vardi,2007年

无限游戏

逻辑游戏和无限游戏是一个活跃的研究领域。游戏论的概念在计算机科学中无处不在,包括不确定性和并行性(交替),程序及其环境,通用和存在的量化,盒子和钻石形式等之间的对偶。研究上面列出的各种非经典逻辑的性质的好方法。

与自动机的接受标准一样,我们在游戏中拥有不同的获胜条件,许多可以证明是等效的。自从您询问经典结果以来,Borel确定性定理和Gale-Stewart游戏经常隐居于我们研究的几种游戏模型的背景中。我们这个时代的一个紧迫问题是解决奇偶游戏的复杂性。Jurdzinski给出了一种策略改进算法,并表明确定赢家是在UP和coUP复杂度类的交集中。Jurdzinski算法的精确复杂性一直持续到弗里德曼(Friedmann)在2009年为其设定指数时间下界之前。

  1. 确定平价游戏获胜者的是 UP∩co -UP,Jurdzinski,1998年
  2. μ演算的游戏,Niwinski和Walukiewicz,1996年
  3. 众所周知的奇偶游戏策略改进算法的指数下界,弗里德曼,2009年

10

Edmund M. Clarke,Orna Grumberg,Doron A. Peled: 模型检查。麻省理工学院出版社1999年(对我而言)是一本关于模型检查的好书。

Glynn Winskel: 编程语言的形式语义:简介。麻省理工学院出版社,1994年,是编程语言的标准教科书之一。

Mordechai Ben-Ari: 计算机科学的数学逻辑。Springer 2001,也许就是您想要的。


7

数据库理论是一个广泛的领域,提供了许多逻辑应用程序。描述性复杂性和有限模型理论是紧密相关的领域。据我所知,这些领域都倾向于使用代数逻辑风格(紧随Birkhoff和Tarski的脚步),而不是证明理论。然而,一些工作的彼得·邦曼列昂尼德·利金文飞凡苏珊·戴维森Limsoon黄淳大濠,和其他研究人员谁是在宾夕法尼亚大学在20世纪80年代- 90年代的工作,并寻求统一的编程语言理论和数据库。这似乎需要同时适应两种逻辑。James Cheney的最新作品也是如此菲利普•瓦德勒Philip Wadler)

在特定参考方面,标准教科书可在线获得,以方便参考:

不幸的是,我不了解涵盖此快速发展领域的任何最新的通用教科书或调查。我发现两项较早的调查很有用。第一,

显示了如何将Tarski和特定子字段约束数据库之间的点连接起来。第二,

(1996-style)数据库理论向有限模型理论家推销,并且在此过程中突出了数据库中逻辑的许多有趣应用。对于最近的工作(例如XML理论,出处,流模型或图形数据库),阅读被高引用的研究论文是一种合理的方法。



4

CS中逻辑的关键用途是程序逻辑,也称为Hoare逻辑。

2π17

在模态逻辑的研究中也得到了类似的情况(再次使人困惑)不像一阶逻辑那样具有表现力,但是它们所能表达的却确实用较短的公式和证明来表达。

对于简单的编程语言来说,识别合适的ZFC片段并不困难,但是随着编程语言获得更多功能,识别挑战将变得越来越困难。在过去的几年中,这项工作取得了实质性进展。

T. Hoare 撰写的论文《计算机编程的公理基础》通常被认为是对程序逻辑的认真研究,它易于阅读,并且可能是开始涉足这一领域的好方法。@vb le提到的Winskel的“编程语言的形式语义学”一书中更详细地研究了相同的逻辑。

可以从相似的角度看待类型理论。类型理论的关键卖点是使用(纯功能的)程序对证明进行识别,从而极大地节省了概念,并带来了强大的自动化(以类型推断和交互式定理证明的形式)。类型理论作为组织证明的一种优雅方式的代价是,它似乎不能与并非纯粹功能的编程语言很好地配合。

Pierce等人的《Software Foundations》是一种以类型论理论方式介绍程序逻辑的近代文本。它会带您接近程序验证研究的最前沿,并且作为一本教科书,您可能会瞥见将来如何教授计算机科学和数学。

一旦为一种语言开发了程序逻辑,下一步就是自动化或部分自动化:为非平凡的程序构造证明很费力,我们希望机器尽可能多地做。当前有关形式化方法的大量研究都与这种自动化有关。


3

在计算机科学中,逻辑学有着很强的传统。我们研究的问题和计算逻辑社区的美学与数学逻辑社区的美学并不相同。完全正确的是,模型理论,一阶逻辑的元理论和集合论的重大发展在计算逻辑中并不常用。人们可以成功地研究计算逻辑,而无需查看或使用超滤器,非标准分析,强制,巴黎-哈灵顿定理以及许多其他在经典逻辑中被认为很重要的令人着迷的概念。

正如人们将数学思想应用于逻辑研究以及将逻辑思想用于数学研究一样,我们也将逻辑学应用于计算机科学,并将计算观点应用于逻辑学。这种不同的重点对我们而言很重要的结果类型具有相当大的后果。

这是约翰·贝兹(John Baez)关于逻辑和计算机科学的引文。我并不完全一样,因为我对高级数学逻辑不是很熟悉。

当我还是一个本科生的时候,我对逻辑和数学的基础很感兴趣-我一直在寻找我能理解的最令人振奋的概念,Goedel定理,Loewenheim-Skolem定理等等就我而言,就在那儿与量子力学和广义相对论有关。[...]我记得当时感觉到逻辑学已不像本世纪初那样具有革命性。在我看来,逻辑已经像其他任何数学一样成为数学的一个分支,研究了Zermelo-Fraenkel公理的模型的晦涩特性,而不是质疑那些公理中隐含的基本假设,并且敢于追求新的,不同的方法。[...]

无论如何,对我来说现在很清楚,我只是没有读正确的东西。我认为Rota已经说过,逻辑上真正有趣的工作现在被冠以 “计算机科学”的名称。

计算机科学中的逻辑是一个广阔且迅速发展的领域。我发现经典逻辑的每个观点都可以修改以得出关于计算逻辑的某些观点。维基百科上有关数学逻辑的条目将领域划分为集合论,模型论,证明论和递归论。您可以基本上采用这些区域,并向它们添加计算风格,并获得计算逻辑的子字段。

模型理论我们喜欢研究非古典逻辑的模型理论和古典逻辑的非古典模型。我的意思是说我们研究模态,时间和子结构逻辑,并且研究与树,词和有限模型相对的逻辑,这与诸如代数的经典模型相反。两个基本问题是可满足性和模型检查。两者都有巨大的实践和理论意义。相反,这些问题在古典逻辑中并不那么重要。

证明理论我们研究了在经典证明系统中生成证明的复杂性和效率,以及开发了对复杂性和效率考虑敏感的新的非经典证明系统。从广义上讲,自动演绎研究机器支持的证据生成。该过程可能涉及人机交互或完全自动化。为逻辑理论开发决策程序有很多工作。证明复杂度侧重于证明的大小和生成证明的计算复杂性。有一个引人入胜的工作线,将程序与证明相关联,并与线性逻辑相关的工作相结合,以开发出对资源敏感的证明系统,从而开发出语言。

递归理论我们的递归理论是复杂性理论。与其研究可计算的内容,不如研究可计算的效率。复杂度理论中有许多递归理论的类似物,但是递归理论的结果和分离并不总是适用于它们的复杂性理论类似物。代替可计算集和算术层次结构,我们拥有多项式时间,多项式时间层次结构和包围层次结构的多项式空间。代替算术层次结构中的有界量化,我们具有可满足性和量化的布尔公式以及布尔公式的有界量化。

调查文章

论逻辑在计算机科学中的异常有效性

这是获得非常高级的计算逻辑视图的良好起点。我将列出计算机科学中几个面向逻辑的领域。我希望其他人可以编辑此答案并将其添加到此处的列表中,并可能在此页面上添加指向该答案的链接。

  1. 有限模型理论
  2. 证明复杂度
  3. 算法演绎(逻辑理论的决策程序)
  4. 程序逻辑
  5. 动态逻辑
  6. 线性时序逻辑及其变体
  7. 计算树逻辑及其变体
  8. 认知逻辑
  9. 数据库理论
  10. 类型理论
  11. 无限词自动机
  12. 分类逻辑
  13. 并发理论与过程代数
  14. 领域理论
  15. 线性逻辑
  16. 描述复杂性
  17. 模型检查
  18. 定点计算和传递闭合逻辑

1

自动定理证明是逻辑和计算机科学之间强烈重叠的领域,例如[4]。例如,参考文献[1]是使用博耶-摩尔定理证明者来检验/验证戈德尔定理。另一个最近的主要/令人印象深刻的结果是Gonthier在Microsoft的研究中最近完成了对四色定理(以及其他诸如Odd Order和Feit-Thompson [3])的软件验证。[2]

[1] 元数学,机器和​​哥德尔证明( Shankar 撰写的《理论计算机科学》中剑桥书目)

[2] 四色定理 Georges Gonthier的计算机检查证明

[3] Feit-Thompson定理形式化中有趣的算法?tcs.se

[4] 计算机在哪里以及如何帮助证明定理?tcs.se

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.