在使用和不使用推送调用的情况下对 UFBV 上的 Z3 进行增量调用

2024-03-02

我正在 UFBV 查询上运行 Z3。目前查询包含2个调用check-sat。 如果我把push 1刚过check-sat,Z3在30秒内解决了查询。如果我不放任何push 1根本没有,因此有两个电话check-sat没有任何push 1他们之间,然后Z3在200秒内解决它。 有趣的。有什么具体原因还是只是巧合?


Z3 3.x拥有基于战术和战术的“策略规范语言”。我还没有“做广告”,因为它正在进行中。 基本思想在此描述幻灯片 http://research.microsoft.com/en-us/um/people/leonardo/cp2011.pdf。 我们针对每种逻辑都有不同的内置策略。这些策略通常不支持增量求解,因为它们可能会应用使用“封闭世界”假设的转换。例如,我们有将 0-1 线性整数算术映射到 SAT 的转换。每当 Z3 检测到用户“想要”增量求解(例如,多个check-sat命令,push&pop命令),它切换到通用求解器。在未来的版本中,我们将提供更多用于控制 Z3 行为的功能。

顺便说一句,如果你有两个连续的(check-sat) (check-sat)命令,Z3不一定进入增量模式。仅当存在时才会进入assert or push两个调用之间的命令。

现在,假设您的查询采用以下形式:(check-sat) <assertions> (check-sat),您的第二个查询的形式为(check-sat) <assertions> (push) (check-sat)。在这两种情况下,Z3 在第二个时间点都将处于增量模式(check-sat)。但是,行为仍然不一样。增量求解器将断言公式“编译”为内部格式,并且如果push命令已执行。例如,仅当没有用户范围时,它才会使用更有效的二进制子句编码。通过用户范围,我的意思是,数量push命令 - 数量pop命令。这样做是因为更有效的编码中使用的数据结构没有有效的撤消/逆操作。

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

在使用和不使用推送调用的情况下对 UFBV 上的 Z3 进行增量调用 的相关文章

  • 如何在z3py中连接正则表达式?

    我想构造一个正则表达式 例如a b c z3中有一个函数re 可以将3个正则表达式连接在一起 所以我可以构造a b c 如下所示 assert str in re aabbc re re str to re a re str to re b
  • z3 实数的存在主义理论

    Z3决定非线性实数运算的存在片段吗 也就是说 我可以用它作为决策程序来测试是否 带有 和 x 的无量词公式有实数解吗 是的 Z3有一个非线性多项式实数运算的存在片段的判定过程 当然 该过程是以可用资源为模完成的 该过程相当昂贵 本文 htt
  • 检索 Z3Py 中的值会产生意外结果

    我想找到一个表达式的最大间隔e对所有人来说都是如此x 编写这样的公式的方法应该是 Exists d ForAll x in d d e and ForAll x not in d d e 为了得到这样一个d 公式f在 Z3 中 看上面的 可
  • 如何使用 z3py 进行增量求解

    我正在使用 Z3 求解器的 python API 来搜索优化的时间表 它工作得很好 除了有时即使对于小图也非常慢 但有时非常快 原因可能是我的调度问题的约束相当复杂 我试图加快速度 并偶然发现了一些关于增量解决方案的文章 据我了解 您可以使
  • 有没有办法获取Z3中的默认上下文?

    我正在使用 z3py API 4 3 0 我可以轻松翻译一个表达expr从默认上下文到新上下文target ctx using expr translate target ctx 但是我如何从给定的上下文中进行翻译ctx进入默认的 Z3 上
  • 如何让 z3 返回多个 unsat 核心、多个令人满意的作业

    我正在研究一个研究工具的一个组件 我有兴趣检索 对于 QF LRA 多个 最少或其他 UNSAT核心以及 多项 SAT 作业 我检查了论坛以获取有关此主题的早期讨论 例如 在逻辑 QF LRA 上使用 z3 时如何获得不同的 unsat 核
  • 使用函数在 z3 中创建列表

    我试图将这段伪代码转换为 SMT LIB 语言 但我卡住了 List function my fun int x list nil for i in 1 to x if some condition on i list concat i r
  • 在 Mac OS X 上构建 z3

    我正在尝试建立Z3 http z3 codeplex com releases view 95640在 Mac OS X 上 按照 README 文件 我刚刚执行了 autoconf configure make 收到错误 omp h 文件
  • 如何将 Z3 与 C++ 结合使用

    我想将 Z3 与 C 一起使用 并且我遵循了安装指南 使用 Visual Studio 命令提示符在 Windows 上构建 Z3 https github com Z3Prover z3 building z3 on windows us
  • Z3 将数组的默认值设置为零

    我正在尝试求解数组表达式的模型 其中数组的默认值等于 0 例如 我正在尝试解决这个例子 但我总是得到未知的结果 declare const arr Array Int Int declare const arr2 Array Int Int
  • 了解 z3 模型

    Z3Py 片段 x Int x fun Function fun IntSort IntSort IntSort phi ForAll x fun x x x print phi solve phi 永久链接 http rise4fun c
  • Z3 求解器中 MAxSMT 和用户定义成本函数的组合

    我正在使用 Z3 来优化带有一些软约束 带有加权 MaxSMT 的成本函数 我很好奇 MaxSMT 和用户定义的成本函数如何交互 求解器是否最小化 MaxSMT 成本和目标函数两者 是否有优先级机制 我找不到这方面的任何文档 如果我遗漏了什
  • SMT中量化算术推理的局限性是什么?

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

    我正在使用 Microsoft 的 Z3 SMT 求解器 并且我正在尝试定义自定义类型的常量 默认情况下 这些常量似乎并不不平等 假设您有以下程序 declare sort S 0 declare const x S declare con
  • z3 中的函数声明

    在 z3 中是否可以声明一个以另一个函数作为参数的函数 例如 这个 declare fun foo Int Bool Int 似乎不太管用 谢谢 正如 Leonardo 提到的 SMT Lib 确实not允许高阶函数 这不仅仅是语法限制 使
  • 使用SMT-LIB使用公式计算模块数量

    我不确定使用 SMT LIB 是否可以做到这一点 如果不可能 是否存在可以做到这一点的替代求解器 考虑方程 a lt 10 and a gt 5 b lt 5 and b gt 0 b lt c lt a with a b and c整数
  • z3 中的列表串联

    有没有办法在 z3 中连接两个列表 类似于 ML 中的 运算符 我正在考虑自己定义它 但我不认为 z3 支持递归函数定义 即 define fun concat List l1 List l2 List ite isNil l1 l2 co
  • Z3 的简化

    declare datatypes SE BROKEN ON OFF declare const s SE declare const a Int simplify or s ON s OFF s BROKEN simplify and g
  • 如何使用 Z3 SMT-LIB 证明 Frobenius 代数中的定理

    我们在弗罗贝尼乌斯代数中证明以下定理 使用以下代码进行证明 Frobenius algebra object A mu eta delta epsilon declare sort A declare sort AA declare sor
  • 如何在Z3中使用四元数进行计算?

    In Z3 中的复数 http research microsoft com en us um people leonardo blog 2013 01 26 complex htmlLeonardo de Moura 能够在 Z3 中引入

随机推荐

  • 套接字连接超时:规范在哪里?

    我的工作环境是我的局域网 下面的代码示例是用 Java 语言编写的 但我的问题是关于 TCP 而不是编程 我遇到过以下连接超时的情况 2 ms when connection established 当主机处于活动状态但未侦听指定套接字端口
  • emacs lisp 中的 let 和 flet

    我不知道你是否会称其为规范公式 但为了绑定本地函数 GNU 手册建议我使用 flet defun adder with flet x flet f x x 3 f x 然而 我偶然尝试了 在玩了一会儿Scheme之后 下面的表达式 其中我使
  • 将给定字符串转换为具有给定子字符串的回文

    给定字符串 S1 和字符串 S2 将字符串 S1 转换为回文字符串 例如 S2 是该回文字符串的子字符串 S1 上允许的唯一操作是将任何字符替换为任何其他字符 找出所需的最少操作次数 我已经编写了这段代码 可以计算需要使用常规字符串进行多少
  • AngularJS CORS 问题

    我已经搜索了 200 多个网站 也许有点夸张 但也不是很多 来了解如何使用 angularjs 处理 cors 我们有一台运行 Web API 服务器的本地计算机 我们正在开发一个调用 API 获取数据的客户端 当从服务器运行客户端时 我们
  • 计算多维数组中的元素数量

    我有这个代码 loadData function jsonArray var id this attr id for var i in jsonArray id tbody append tr class entry details pag
  • 声音匹配/搜索

    实际上声音匹配 搜索的当前技术水平如何 我目前正在远程参与规划一个 Web 应用程序 该应用程序将包含并公开录制的短音频剪辑 最多 3 5 秒 人名 的数据库 有人提出了是否有可能实现基于用户语音输入的搜索的问题 我的直觉告诉我 从计算和算
  • 如何在同一服务器环境下运行PHP和Tomcat?

    不久前在 AskUbuntu 上问过这个问题 https askubuntu com questions 630897 apache httpd backed by both tomcat and php https askubuntu c
  • TypeScript:类型“EventTarget & Element”上不存在属性“checked”。为什么它不存在?

    我收到此错误 错误 17 35 TS2339 类型 EventTarget Element 上不存在属性 checked 但这绝对是不可能的错误 因为 React 文档说checked确实存在于target的复选框 https reactj
  • 对复合对象数组以及日期范围进行 Elasticsearch 查询

    您好 我有一个问题 如何为具有日期范围和附加字段参数的嵌套复合对象创建弹性搜索查询 如下所示 name A availability partial true dates gte 2020 12 01 lte 2020 12 02
  • 在 Java 8 中使用 lambda 出现意外错误

    我正在使用 Java 8 Update 20 32 位 Maven 3 2 3 Eclipse Luna Build id 20140612 0600 32 位 开始使用 lambda 后 我的项目中的一些类开始在 Maven 中报告编译错
  • Javascript 前进后退按钮

    我在我正在开发的网站的主页上使用 s3Slider javascript 幻灯片 http alexisparkinn com http alexisparkinn com 我真的很喜欢这张幻灯片 但它无法让用户转到下一张或上一张图像 我怎
  • 有没有办法对VBA中的代码施加时间限制?

    我想知道是否有人有对代码段施加时间限制的经验 我已经用 VBA 将搜索引擎编程到 Excel 电子表格中 并且有一段代码可以删除重复的结果 现在 如果给出最模糊的搜索条件 这部分有时可能会持续相当长的时间 所以我想对这个操作施加一个时间限制
  • 使用滑块更改 QTimer 的间隔超时

    timer new QTimer this timer gt setInterval 50 QPushButton start new QPushButton Start Stop this start gt setText Start S
  • 使用 Core Data(在 SwiftUI 中)提供的数据并与另一个视图共享

    我在这里遇到了一些麻烦Core Data and SwiftUI 我的主视图可以访问来自实体的一些信息Core Data 我想使用某种绑定将其传递给子视图 以便它也可以访问该数据并可能更新它 这是我尝试过的代码的一个版本 在主视图一侧 En
  • 如何在此 React 18 应用程序中即时验证表单字段?

    我正在使用 React 18 和 Firebase 开发一个聊天应用程序 In the src pages Register jsx组件 我有一个可以验证的表单简单的身体验证器 https github com jadKhoury1 sim
  • 如何在组织模式下使用其他标题样式,例如 twiki ---+ 或 mediawiki == h2 == ?

    我真的很想使用组织模式 但是 我想使用 org mode 来理解已经使用不同标题语法编写的结构化文档 例如使用 twiki 的 H1 Top level H2 Nested H1 2 Second top level 或者类似媒体维基 H1
  • 将内存映射与服务一起使用

    我构建了一个也可以作为服务运行的应用程序 使用 service 转变 当我从命令提示符运行服务时 这可以完美地工作 没有任何问题 我设置了一些设置 可以让我在不作为真正的服务运行时从控制台调试它 但是 当我尝试将其作为真正的服务运行然后使用
  • Windows终端:打开多个窗格并执行指定命令

    我最近下载了新的Windows Terminal 我已经创建了用于打开多个窗格的快捷方式 工作正常 但是 我正在尝试为相应的窗格执行命令 wt d
  • 简单的 PHP 函数从文本文件中删除最后一行不起作用

    我有一个名为test只有 2 行 1 2 我希望能够从文件中删除最后一行 因此我使用以下函数 由于某种原因 这没有任何作用 并且文件仍然具有确切的行 我在这里遗漏了一些东西吗 file http php net manual en func
  • 在使用和不使用推送调用的情况下对 UFBV 上的 Z3 进行增量调用

    我正在 UFBV 查询上运行 Z3 目前查询包含2个调用check sat 如果我把push 1刚过check sat Z3在30秒内解决了查询 如果我不放任何push 1根本没有 因此有两个电话check sat没有任何push 1他们之