SMT中量化算术推理的局限性是什么?

2024-03-30

我在以下看似微不足道的基准测试中尝试了几种 SMT 求解器(CVC3、CVC4 和 Z3):

(set-logic LIA)
(set-info :smt-lib-version 2.0)
(assert (forall (( x Int)) (forall ((y Int)) (= y x))))
(check-sat)
(exit)

求解器都返回未知。我知道这是一个不可判定的片段(非线性),但我期望会有一些简单的实例化启发式方法可以解决它。我还尝试添加一些带有常量的额外断言,但没有帮助。

有没有办法解决这些问题以及SMT中量化算术推理的局限性是什么?


垫正确,qe预处理器可能相当昂贵。此外,它对于来自软件验证工具(例如VCC http://vcc.codeplex.com/, Poirot http://research.microsoft.com/en-us/projects/poirot/, Dafny http://research.microsoft.com/en-us/projects/dafny/, VeriFast http://www.cs.kuleuven.be/~bartj/verifast/, Why3 http://why3.lri.fr/, and ESCJava2 http://kindsoftware.com/products/opensource/ESCJava2/。它并不有效,因为这些应用程序生成的公式还包含未解释的函数、数组等。

正如 Pad 的回答所暗示的那样,Z3 是引擎的集合。它提供 API 和命令,允许用户选择使用哪个引擎(或引擎组合)来解决问题。当用户刚刚说(check-sat)尝试猜测解决输入公式的最佳引擎是什么。猜测是基于输入公式的结构和用户提供的注释(例如:set-logic命令)。我们正在不断扩展自动检测的片段集以及我们提供的引擎集。

话虽这么说,但令人尴尬的是,Z3 错过了诸如此类的片段LIA并且没有自动应用qe对其进行程序。为了LIA公式,qe通常是最好的选择。基于 E-matching 或 MBQI 的替代方案并不有效,因为它们适用于完全不同的片段。

I just 提交的代码 http://z3.codeplex.com/SourceControl/changeset/97bf9418f721检测到LIA(即使当set-logic未使用)。该更改已在unstable(正在进行中)分支。它将在明天的夜间版本和下一个正式版本中提供。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SMT中量化算术推理的局限性是什么? 的相关文章

随机推荐

  • 如何在 Google Charts 中获取带有 svg 内图像的 png(base64)?

    如何获取 svg 内图像的 base64 检查这个Fiddle http jsfiddle net R8A8P 51 这是我从另一个问题中得到的 如果您看到第二个图形 则它不会生成覆盖该条的图像 var chart new google v
  • Gstreamer multifilesink wav 文件分割

    我在使用 gstreamer 录制流时遇到问题 我必须分别编写音频和视频 并在信号到达时切入 我的视频工作正常 但 wav 文件仍然存在问题 即使 gst launch 中的简单管道也无法正常工作 我有波形文件 我正在尝试使用 multif
  • 为什么 Rails 要为 JSON PUT 请求返回“head :no_content”?

    我跑完之后 rails generate scaffold UserRails 3 2 11 中生成的用于更新用户的控制器函数如下所示 def update user User find params id respond to do fo
  • 家长/孩子同桌

    我有如下表结构 id parent name value 1 0 aaa 2 0 bbb 3 0 ccc 4 1 111 5 1 222 6 3 333 如果父记录有子记录 我想显示父记录 Like 父代 ID 名称 第一个子代的值 1 a
  • 如何在 CodeIgniter 中使用准备好的语句

    大家好 我需要在我的网站中使用准备好的语句 我尝试使用这个 sql SELECT FROM tbl user WHERE uid id and activation key key query this gt db gt query sql
  • 实体框架查找与何处

    之间是否存在显着差异 Find id and Where x gt x Id id 这应该迫使我使用 Find over Where First 我会想象 Find 会更有效 但是我应该避免这样做吗 Where First 我问的原因是我在
  • 项目GUID不断变化

    我们有一个 VS2008 解决方案 我注意到发生了一些奇怪的事情 某些项目引用同一解决方案中定义的其他项目 作为项目引用添加 这是前一段时间完成的 直接从 VS 构建效果很好 从 MSBUILD 构建失败 我已删除项目引用并重新添加它 并且
  • npm install 与 sudo npm install -g

    对于某些包我必须运行sudo npm install g而对于其他人npm install就足够了 为什么以及有什么区别 例如 npm install g grunt cli doesn t work sudo npm install g
  • 无法使用 JavaScript 选择最接近的 h2 元素

    我希望能够选择与包含披萨选择选项的字段集最接近的 h2 标题 并使用 jQuery 设置标题的文本 到目前为止我还无法做到这一点 HTML div fieldset fieldset div
  • Breeze 和 Knockout 中的验证

    我最近使用 Knockout 和 ASP NET MVC4 将 Breeze 添加到项目中 我真的很喜欢 Breeze 它节省了大量的编码工作 我使用过 Knockout 验证 喜欢它如何验证数据输入时的属性字段文本框以及错误消息的显示方式
  • Laravel - 捕获 cURL 异常的正确方法

    我正在使用 cURL 构建一个简单的 REST API 包 并希望捕获错误然后返回视图 如果我 dd e 我可以抛出错误 但如果我尝试返回一个视图 它只会继续执行 catch 函数之后的代码 PHP 不应该终止进程并直接进入登录视图吗 tr
  • 在 Rubymine 中运行 Rails 时找不到图像

    当我尝试在 Rubymine 中运行一些 Rails 命令时 出现以下错误 我最近更改了一些权限以使一些符号链接正常工作 尽管这可能不相关 例如当我跑步时rails c我收到此类错误 RAILS GROUPS is unset defaul
  • ruby on Rails + xampp + mysql (Windows 7)

    我正在尝试在 Windows 7 上将 xampp 中包含的 mysql 包与 ruby on Rails 一起使用 但似乎无法让它们一起工作 我有 Rails 3 0 0 和 xampp 1 7 3 Rails 在 xampp 中与 sq
  • 使用Python Mock库来监视内部方法调用

    我正在使用 Python 模拟模块进行测试 我想监视活动对象发出的内部方法调用 我发现 wraps kwarg 可用于设置一个模拟来监视对活动对象的方法调用 使用 Python 模拟来监视对现有对象的调用 https stackoverfl
  • 有谁在 PyCharm 中拥有以下库的“文档 URL”:

    我是 PyCharm 和其他 Jetbrains IDE 的 快速文档 功能的粉丝 但它需要知道每个库的特定 文档 URL 该功能在Preferences gt Tools gt Python External Documentation设
  • 识别 WCF 服务中的客户端

    我有一个工作双工 WCF 服务WSDualHttpBinding 我的问题是找到一种方法来存储具有唯一 ID 的回调通道 该服务旨在长期运行 我可以简单地抓住OperationContext Current GetCallbackChann
  • 如何将参数传递给 HttpInterceptor?

    我正在使用 Angular 4 3 1 和 HttpClient 有一个 HttpInterceptor 来设置一些标头 在某些 http get 请求中 我需要设置不同的标头 无论如何 我可以将一些参数传递给该特定 HttpRequest
  • 如何滚动到页面中间(50%)

    如果不使用流行的scrollTo插件 我如何滚动到页面 div的垂直中间 50 这会将 div 的地狱卷轴滚动到其垂直中间 var myDiv yourdiv var scrollto myDiv offset top myDiv heig
  • 为什么要使用 Handlers 而 runOnUiThread 会做同样的事情?

    我都遇到过Handlers http developer android com reference android os Handler html and 在UiThread上运行 http developer android com r
  • SMT中量化算术推理的局限性是什么?

    我在以下看似微不足道的基准测试中尝试了几种 SMT 求解器 CVC3 CVC4 和 Z3 set logic LIA set info smt lib version 2 0 assert forall x Int forall y Int