一阶逻辑验证简介


9

我正在尝试向自己教授软件验证的不同方法。我读了一些文章。据我了解,带有时间的命题逻辑通常在SAT求解器中使用模型检查(在进行中的-反应系统中),但是带有时间的一阶逻辑又如何呢?它使用定理证明吗?还是可以使用SAT?

非常感谢初学者在这本书上指向书籍或文章的任何指针。


2
首先欢迎来到CS:SE。尽管我不是专家,但您似乎一次抓住了几个主题,留下了很多空白。不用担心 我一直都在做。看一下软件验证,然后是形式验证,然后是模型检查形式软件验证:模型检查和定理证明
Guy Coder 2012年

Answers:


9

一阶逻辑是不确定的,因此SAT求解并没有真正的帮助。也就是说,存在用于一阶公式的有界模型检查的技术。这意味着在尝试确定公式是对还是错时,只能考虑固定数量的对象。显然,这还不完整,但是如果找到了反例,那么它确实是一个反例。

工具Alloy是一个工具,它允许使用一阶逻辑描述模型(尽管表面语法基于相关描述的模型),并使用有界模型检查来查找解决方案。引擎盖下使用SAT求解器。一种合金扩展允许具有时间特性的模型,尽管从技术上讲它不支持时间逻辑。

如果您想进一步探索,例如验证程序的正确性,则可以查看程序验证工具。这些通常基于Hoare逻辑(用于解释前置条件和后置条件),并可能通过Separation逻辑进行扩展(用于解释堆)。这些逻辑通常是不确定的,因此需要人工与验证工具之间进行一定程度的交互。一些示例工具是:


10

在阅读完您的问题之后,我能看到的并且具有足够知识将主题联系在一起的唯一方法是,提供一系列从软件验证中挖掘出来的高级文章,最后尝试将模型检查和定理证明结合起来。希望我的评论能做到:

先看一下软件验证,然后是形式验证,然后是模型检查形式软件验证:模型检查和定理证明

戴夫(Dave)给出了一个很好的答案,我对问题的第一部分没有比戴夫(Dave)更加公正的理由,因为我对此还很陌生。

由于这是您在SE网站上的第一个问题,所以我没有给出答案而是发表评论的原因是,这里的答案不能只是一组链接,而必须给出书面答案并使用链接来支持答案。因此是评论而不是答案。

关于:

非常感谢初学者在这本书上指向书籍或文章的任何指针。

我建议和使用的书籍是:

目前,由于我仍在学习每个定理的优缺点,所以我无法进一步扩展定理证明。

  • HOL Light是因为约翰·哈里森(John Harrison)的
  • Coq,因为它基于构造的微积分
  • Isabelle,因为它基于更高阶的统一。

    这些证明助手通常还拥有书籍,是最新的,流行的,开放源代码的,维护的,并具有活跃的支持社区。

注意:我使用worldcat.org来参考这些书,但是您可以使用Amazon的内部外观功能对其进行阅读。


为了避免对答案进行大量修改,我将添加的信息作为注释删除,然后在将来将其汇总到答案中。试图理清证明助手之间的许多异同。Google for Freek Wiedijk;我发现他的论文很有用。
Guy Coder 2012年

非常感谢您的详尽彻底的回答。用于在书中添加评论并提供免费书的链接。再次,我非常感谢您:-)
FELIPE N.
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.