检索 Z3Py 中的值会产生意外结果

2023-12-30

我想找到一个表达式的最大间隔e对所有人来说都是如此x。编写这样的公式的方法应该是:Exists d : ForAll x in (-d,d) . e and ForAll x not in (-d,d) . !e.

为了得到这样一个d, 公式f在 Z3 中(看上面的)可能是以下内容:

from z3 import *

x = Real('x')
delta = Real('d')
s = Solver()

e = And(1/10000*x**2 > 0, 1/5000*x**3 + -1/5000*x**2 < 0)

f = ForAll(x,
And(Implies(And(delta > 0,
                -delta < x, x < delta, 
                x != 0),
            e),
    Implies(And(delta > 0,
                Or(x > delta, x < -delta),
                x != 0),
            Not(e))
    )
)

s.add(Not(f))
s.check()
print s.model()

它打印:[d = 2]。这肯定不是真的(采取x = 1)。怎么了?

另外:通过指定delta = RealVal('1'),一个反例是x = 0,即使当x = 0应该避免。


您的常量被强制为整数。而不是写:

1/5000

你应该写:

1.0/5000.0

您可以通过以下方式查看生成的表达式:

print s.sexpr()

这会提醒您注意这个问题。

注意。编写常量时,明确类型始终很重要。请参阅此答案,了解该主题的变体,该变体可能会导致进一步的问题:https://stackoverflow.com/a/46860633/936310 https://stackoverflow.com/a/46860633/936310

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

检索 Z3Py 中的值会产生意外结果 的相关文章

  • SMT 中的混合理论

    我想构造一个 SMT 公式 其中包含对整数线性算术和布尔变量的多个断言 以及对实际非线性算术和布尔变量的一些断言 对整数和实数的断言仅共享布尔变量 例如 请考虑以下公式 declare fun b Bool assert b true de
  • 增量求解有什么好处?

    如果 pop 完全破坏了上下文 即学到的引理 增量约束求解使用 堆栈 的目的是什么 模式 理由 我想如果我只有 1 个约束 几个 合词 最好进行单个查询 而不是 将单独帧中的合取词堆叠到堆栈上 如果我 有超过 1 个约束并决定使用增量求解
  • Z3中的parthood定义

    我试图在 Z3 中定义集合对 使用数组定义 之间的部分关系 在下面的代码中称为 C 我写了 3 个断言来定义自反性 传递性和反对称性 但 Z3 返回 未知 我不明白为什么 define sort Set Array Int Bool dec
  • 使用布尔运算符在 Z3 中定义约束

    比方说 我想使用 Z3 约束将字符串的每个字符限制为字符集 a zA Z0 9 我可以使用布尔运算符来指定吗 举个例子 input BitVec input s i 8 for i in range 10 for i in range 10
  • 如何在线使用Z3Py解决运算放大器的问题

    求下列电路中R的值 使用以下代码可以解决此问题 R V1 V2 Vo Reals R V1 V2 Vo I1 V1 R 50 I2 V2 R 10 g R I1 I2 print g equations Vo g print equatio
  • Z3 上下文序列化/反序列化?

    是否可以序列化 反序列化 Z3 上下文 来自 C 如果没有 这个功能有计划吗 我认为这个功能对于现实世界的应用程序很重要 当前 API 不直接支持此功能 下一版本将支持多个求解器 我们将提供用于将断言从一个求解器复制到另一个求解器并检索断言
  • 如何使用 z3py 进行增量求解

    我正在使用 Z3 求解器的 python API 来搜索优化的时间表 它工作得很好 除了有时即使对于小图也非常慢 但有时非常快 原因可能是我的调度问题的约束相当复杂 我试图加快速度 并偶然发现了一些关于增量解决方案的文章 据我了解 您可以使
  • 简化 CNF 公式,同时保留某些变量的所有解决方案

    有关的 CNF 简化 https stackoverflow com questions 23461191 cnf simplification 事实上 我认为这个问题的提交者可能是在追求我想要的东西 有许多工具可用于简化 或求解前 预处理
  • 在 Z3 中使用 SMT 约束时获取合法范围信息的(次)最佳方法

    这个问题与我之前的问题相关 在 Z3 中使用 SMT 约束时是否可以获得合法的范围信息 https stackoverflow com questions 53676016 is it possible to get a legit ran
  • z3 中如何定义 Int 排序(SMT-LIB 2.0 Ints 理论)和动态声明排序?

    这是我使用 z3 执行的 SMT LIB 2 0 基准测试 set logic AUFLIA declare sort PZ 0 declare fun MS Int PZ Bool assert forall x Int exists X
  • Z3Py 中最大值的模型不正确

    我想找到一个表达式的最大间隔e对于所有 x 都成立 编写这样的公式的方法应该是 Exists d ForAll x in d d e and ForAll x not in d d e 为了得到这样一个d 公式f在 Z3 中 看上面的 可能
  • 如何从 Z3 中的 Seq 类型中提取元素作为基本类型?

    如何将序列中的元素提取到基本类型 以便以下内容正常工作 define sort ISeq Seq Int define const x ISeq seq unit 5 define const y ISeq seq unit 6 asser
  • 在使用和不使用推送调用的情况下对 UFBV 上的 Z3 进行增量调用

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

    最新版本Z3 http z3 codeplex com解耦了以下概念Z3 context and Z3 solver The API http research microsoft com en us um redmond projects
  • Z3 求解器中 MAxSMT 和用户定义成本函数的组合

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

    我有一些代码 我想在一些策略的帮助下检查它们 因为我有很多if then else声明 我要申请elim term ite tactic 我使用了以下策略 check sat using then simplify arith lhs tr
  • 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 统计中测量内存使用情况的单位是什么 是MB还是KB 记忆到底意味着什么 是执行期间的最大内存使用量还是所有分配的总和 它是执行期间最大堆大小的近似值 并通过 cmd context cpp 中的以下函数将其添加到统计对象中 void
  • 能够删除特定约束的增量 SMT 求解器

    是否有增量 SMT 求解器或用于某些增量 SMT 求解器的 API 我可以在其中增量添加约束 在其中我可以通过某个标签 名称唯一地标识每个约束 我想唯一地标识约束的原因是这样我可以稍后通过指定标签 名称来删除它们 需要放弃约束是因为我之前的

随机推荐

  • jQuery - 当滑动面板显示时绝对定位 div 的“左”位置动画

    我在屏幕左侧有一个隐藏面板 单击位于屏幕左侧的 选项卡 即可滑入视图 我需要面板滑过现有页面内容的顶部 并且需要选项卡随之移动 所以两者在css中都是绝对定位的 一切工作正常 除了我需要选项卡 以及选项卡容器 在面板显示时向左移动 因此它似
  • 从 azure web 应用程序发送 http 请求到我的机器

    我创建了一个发送 http 请求的 azure Web 应用程序 axios post http mypublicip 3000 write Name content data 1 同时我的电脑有一个正在运行的 Express 服务器 ap
  • 如何在 ASP.NET MVC 中生成完整的trace.axd?

    在我的应用程序上 启用后ASP NET 跟踪 http msdn microsoft com en us library y13fw6we VS 71 aspx在 ASP NET MVC 应用程序中 时间计算统计数据相差 5000 倍 我的
  • AF网络和网络错误

    我正在使用AFNetworking框架来发出多个 JSON Web 请求 在开发过程中 如果我未能提供所需的参数或服务开发人员损坏了某些东西 我会收到500 error 的错误块AFJSONRequestOperation正确地抓住了它 但
  • 在 Life ray 中自定义站点管理员角色的权限?

    我想自定义站点管理员角色权限 即我需要启用一项功能来创建用户以在相应站点下进行站点管理 我怎样才能做到这一点 我需要用 Hook 来实现它还是需要创建 EXT 或者任何其他更简单的方法来实现这一目标 我需要在相应站点下启用用户创建并为站点管
  • 著名:滚动视图中的滚动视图

    我正在尝试创建一个类似于 BBC 新闻本机应用程序的布局 使用known js 一个垂直的ScrollView 其中有许多水平的ScrollView 我已经 工作 到了一切都渲染并且水平滚动条完美工作的程度 我的问题是 如果用户在水平 Sc
  • 重命名文件扩展名而不指定

    我正在创建一个 bash shell 脚本 它将重命名文件扩展名 而无需指定旧的文件扩展名 如果我在 Linux 的终端中输入 change foo 它会将所有文件扩展名更改为 foo 假设我有四个文件 file1 txt file2 tx
  • 使用 Object.assign 更新嵌套对象

    我有以下对象 当用户单击按钮时 该对象将被分配一个新值 state title id imageId boarding id test work title id 我更新的对象如下所示 state title My img id 1234
  • 服务意图必须明确:意图

    我现在有一个应用程序 我在其中通过广播接收器 MyStartupIntentReceiver 调用服务 广播接收器中调用服务的代码是 public void onReceive Context context Intent intent I
  • 从 Razor 调用 ServiceStack 服务

    这里有一点边缘情况 我需要从 razor 同一网站 调用服务堆栈服务 现在我正在做 CheckIfConfiguredResponse aResponse new JsonServiceClient http localhost 2000
  • 在使用 AngularJS 的 Chrome 应用程序中,我可以直接将 ngSrc 指令用于内部图像吗?

    我正在使用 AngularJS 编写一个 Chrome 应用程序 我知道 当访问外部图像时 您必须执行跨源 XMLHttpRequest 并将它们作为 blob 提供 我有一堆内部图像 本地应用程序资源 它们遵循我想要在 ngRepeat
  • 选择容器后 JProfiler 远程进程列表为空

    我正在使用 JProfiler 12 并尝试通过 SSH 连接到 Docker 容器中的远程 JVM 进程 我已按照此处的说明进行操作 https www ej technologies com products jprofiler wha
  • 仅使用一元绑定语法表达 do 块

    据我所知 doHaskell 中的块只是一元绑定运算符的某种语法糖 例如 可以转换 main do f lt readFile foo txt print f print Finished to main readFile foo txt
  • uitableviewcell 的数据在滚动时相互重叠

    我有一个包含四个部分的表格视图 所有部分都有两个文本字段和一个位于不同行的标签 我添加了一些文本作为文本字段的占位符 最初 数据看起来很好 但是当我滚动表格视图时 单元格开始出现重叠的数据 My Code UITableViewCell t
  • 我如何检查是否已收到 Playwright 的回复?

    使用 Java 我试图等待对我正在等待的 Javascript 脚本之一的响应 我已经发现我可以使用等待响应 https playwright dev java docs api class page page wait for respo
  • React.js 中的 setState 与 refs

    我在反应中创建了选项卡 现在单击我必须更改选项卡的类 选项卡类可能如下 1 active2 上一个活动3 已选择 单击选项卡类后将变为active并在使用前检查是否已选择alreadySelected类和active最后一个活动选项卡中的类
  • 如何将多个 PNG 合并为一个大 PNG 文件?

    我有大约 6000 个 PNG 文件 256 256 像素 并希望将它们组合成一个大 PNG 以编程方式保存所有这些文件 最好 最快的方法是什么 目的是在纸上打印 因此使用某些网络技术不是一种选择 拥有一个单一的图片文件将消除许多使用错误
  • Go 中的 exec.Command() 与环境变量

    我想在 Go 中运行以下代码 out err exec Command echo PATH Output 结果是 PATH 而不是 PATH bin 的预期值 为什么 我怎样才能得到期望值 shell 没有解释您的命令 这就是预期的变量替换
  • {} + "" 与 "" + {} - 加法的一致性 [重复]

    这个问题在这里已经有答案了 前几天我在 Reddit 上偶然发现了这个 海报指出 等于0 而类似的 等于一个空 object Object 正常的数学规则告诉我这很奇怪 但为什么会这样呢 代币 语句的开头可能意味着对象文字的开始 也可能意味
  • 检索 Z3Py 中的值会产生意外结果

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