了解 z3 模型

2024-03-10

Z3Py 片段:

x = Int('x')
fun = Function('fun', IntSort(), IntSort(), IntSort())
phi = ForAll(x, (fun(x, x) != x)) 
print phi
solve(phi)

永久链接: http://rise4fun.com/Z3Py/KZbR http://rise4fun.com/Z3Py/KZbR

Output:

∀x : fun(x, x) ≠ x
[elem!0 = 0,
 fun!6 = [(1, 1) → 2, else → 1],
 fun = [else → fun!6(ζ5(ν0), ζ5(ν1))],
 ζ5 = [1 → 1, else → 0]]

Question: 我正在尝试理解 Z3 生成的模型。我有以下疑问。

  1. 在z3生成的模型中,fun只有else部分。因此乍一看,无论参数如何,似乎都有一个值。但仔细一看,似乎v0 and v1是形式参数fun。这有什么约定吗?
  2. 哪个变量起作用elem!0参考?

Thanks.


Z3生成的模型应该被视为纯函数式程序。 当我们要求 Z3 以 SMT 2.0 格式显示模型时,这一点变得很清楚。 我们可以通过使用该方法来实现sexpr()。这是使用此方法的示例(http://rise4fun.com/Z3Py/4Pw http://rise4fun.com/Z3Py/4Pw):

x = Int('x')
fun = Function('fun', IntSort(), IntSort(), IntSort())
phi = ForAll(x, (fun(x, x) != x)) 
print phi
s = Solver()
s.add(phi)
print s.check()
print s.model().sexpr()

的解释fun包含自由变量。你应该将其读作:fun(v0, v1) = fun!6(k5(v0), k5(v1))。当模型以 SMT 2.0 格式显示时,这是明确的。当我编写 Python 漂亮打印机时,我试图专注于无量词的问题。 “模型作为函数式程序”的想法与无量词问题无关。以后我会尝试改进Python模型漂亮的打印机。 常数elem!0是Z3在求解过程中创建的辅助常数。最终并不是真的需要它(在模型简化之后)。我将改进模型的“死代码”消除程序,以消除这些不必要的信息。然而,该模型是正确的。它确实满足量词。您可以在以下位置找到有关 Z3 使用的编码的更多详细信息:http://rise4fun.com/Z3/tutorial/guide http://rise4fun.com/Z3/tutorial/guide,以及辅助功能k!5是本文中描述的“投影”函数article http://research.microsoft.com/en-us/um/people/leonardo/files/ci.pdf.

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

了解 z3 模型 的相关文章

  • 如果两点之间的距离低于某个阈值,则从列表中删除点

    我有一个点列表 只有当它们之间的距离大于某个阈值时 我才想保留列表中的点 因此 从第一个点开始 如果第一个点和第二个点之间的距离小于阈值 那么我将删除第二个点 然后计算第一个点和第三个点之间的距离 如果该距离小于阈值 则比较第一点和第四点
  • 是否有解决方法可以通过 CoinGecko API 安全检查?

    我在工作中运行我的代码 一切都很顺利 但在不同的网络 家庭 WiFi 上 我不断收到403访问时出错CoinGecko V3 API https www coingecko com api documentations v3 可以观察到 在
  • 与区域指示符字符类匹配的 python 正则表达式

    我在 Mac 上使用 python 2 7 10 表情符号中的标志由一对表示区域指示符号 https en wikipedia org wiki Regional Indicator Symbol 我想编写一个 python 正则表达式来在
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • Python zmq SUB 套接字未接收 MQL5 Zmq PUB 套接字

    我正在尝试在 MQL5 中设置一个 PUB 套接字 并在 Python 中设置一个 SUB 套接字来接收消息 我在 MQL5 中有这个 include
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • 如何在 Python 中解析和比较 ISO 8601 持续时间? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 Python v2 库 它允许我解析和比较 ISO 8601 持续时间may处于不同单
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • 从Python中的字典列表中查找特定值

    我的字典列表中有以下数据 data I versicolor 0 Sepal Length 7 9 I setosa 0 I virginica 1 I versicolor 0 I setosa 1 I virginica 0 Sepal
  • 如何通过 TLS 1.2 运行 django runserver

    我正在本地 Mac OS X 机器上测试 Stripe 订单 我正在实现这段代码 stripe api key settings STRIPE SECRET order stripe Order create currency usd em
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • 在本地网络上运行 Bokeh 服务器

    我有一个简单的 Bokeh 应用程序 名为app py如下 contents of app py from bokeh client import push session from bokeh embed import server do
  • 将 Python 中的日期与日期时间进行比较

    所以我有一个日期列表 datetime date 2013 7 9 datetime date 2013 7 12 datetime date 2013 7 15 datetime date 2013 7 18 datetime date

随机推荐

  • CSS 网格并指定多个区域

    我需要一些元素重叠 我还想通过区域名称而不是行 列来指定内容 因为这样可以更好地阅读 我一生都无法理解如何按照 MDN 示例指定多个网格区域 或者 如果它甚至可能 文章建议它根据语法示例是可能的 但它实际上是如何工作的 没有任何线索 问题示
  • 解决多源多汇流网络的最优方式

    为了简单起见 假设我们有以下问题 我们正在为城市中的自动驾驶汽车编写 GPS 我们假设运行我们软件的汽车是路上唯一的汽车 他们将城市的布局表示为一个流网络 但流网络有多个起点 终点 因此存在多个不一定彼此靠近的源 汇 有没有有效的解决方案来
  • 如何覆盖 node.js http 以对所有出站请求使用代理

    我最近创建了一个 node js 应用程序 可以访问社交媒体网站并缓存我们的公共源 我正在使用一些现有的 npm 模块来方便访问社交媒体 api 它在我的开发环境中就像一个魅力 但在我们的生产环境中 请求超时 因为它们需要通过代理 无需修改
  • 构造函数参数的所有组合

    很可能是一个愚蠢的问题 但无论如何 是否有一种简短的方法来声明采用任意参数组合的构造函数 例如 具有 3 个参数的 ctor 有 2 3 种可能的组合 如下面的模型所示 template
  • 将正则表达式中的文本更改为大写

    我有个问题 如何将 HTML 标签 之间的文本更改为大写字母 部分代码 string a b hello world b table test table a Regex Replace a lt n gt String Empty 现在
  • Android项目包结构

    我想知道如何为 Android 应用程序创建灵活的包结构 以便于扩展和管理 我的第一个想法是将每个应用程序组件放在单独的包中 例如 spk myapp main 主要活动中使用的所有类 spk myapp processor 处理器提供程序
  • Objective C - 获取方法的参数类型?

    在运行时我需要能够获取方法的参数类型 以下是打印的内容 我在其他线程上读到 在运行时 Objective C 将传递给方法的所有对象视为参数id 如果这种方法不起作用 那么关于读取参数类型的方法还有其他建议吗 Log 2014 02 07
  • 什么叫会话存储?

    Web 应用程序 网站上下文中的会话存储是什么 它不仅仅是会话变量的临时存储吗 通常 用户对站点的第一个请求会建立一个会话 会话有一个密钥 该密钥作为 cookie 传递给用户 以便每个后续请求都会检索到相同的会话 会话存储可以存储您不希望
  • 在 HTML 和 Javascript 中的图像顶部“绘制”

    我正在构建一个网络应用程序 用户可以通过用光标在图像上 绘图 来标记图像 我们将获取用户的绘图并将其发送到服务器以转换为 PNG 或其他格式进行存储 我们需要这个应用程序能够在基于桌面和平板电脑的浏览器上运行 因此 Flash Java 和
  • 在C中检查大量数据是否为空的最快方法? [复制]

    这个问题在这里已经有答案了 我有大量数据 可能有 4MB 现在想要检查其中的所有位是否都为 0 例如 这是数据 void data malloc 4 1024 1024 memset data 0 4 1024 1024 检查其中的所有位是
  • 是否可以访问App Bundle的en.lproj?

    我希望能够更改语言目录中的语言文件 例如 假设我有日语更新 那么我可以让应用程序从 FTP 站点获取 localized strings 文件 然后写入 jp lproj 目录 另一个例子是将新语言上传到应用程序 我的应用程序将再次从 FT
  • Postgres 的 php pdo:“找不到驱动程序”

    我在新的 Ubuntu 18 04 服务器上为 Postgres 安装了 php 但我遇到了 php 问题 以下是我的 php 7 3 安装步骤 sudo apt install software properties common sud
  • PHP + PhantomJS 光栅化

    我在 PHP 应用程序中使用 PhantomJS 64 位来动态捕获要通过电子邮件发送给用户的 HTML 页面 phantomjs rasterize js http path to images image png 当我在命令行上运行上述
  • 查找 Maven 依赖项对象的依赖项

    我正在编写一个 Maven 3 插件 它需要知道给定的传递依赖项org apache maven model Dependency 我怎样才能做到这一点 在 Maven 3 中 您可以通过依赖于基于树的形式访问所有依赖项maven depe
  • 在 Google App Engine 上使用任务队列时如何确定任务的优先级?

    我正在尝试解决以下问题 我有一系列想要执行的 任务 我有固定数量的工作人员来执行这些工作人员 因为它们使用 urlfetch 调用外部 API 并且对此 API 的并行调用数量有限 我希望这些 任务 能够 尽快 执行 即最小延迟 这些任务是
  • Visual Studio 2022 中是否支持 .editorconfig?

    我打开 Visual Studio 2022 并创建一个新的空解决方案 我添加一个 editorconfig文件包含 root true end of line lf indent style space indent size 3 tab
  • UITextField 在视图出现后丢失firstResponder

    我有一个UIPageViewController 一个页面有一个按钮 另一页有一个UITextField有一个按钮 当页面滚动到带有字段的视图时 我希望它becomeFirstResponder并打开键盘 发生的情况如下 I call se
  • Outlook iCal 会议邀请说明问题

    我正在发送iCal event邀请使用php 一切都以正确的方式显示RVSP按钮正确显示 但description is cutting down after first line 例如 如果我的描述是 The problem occurs
  • JDK 1.6 中“vm 线程”的作用是什么[重复]

    这个问题在这里已经有答案了 我们在客户的系统中看到该线程的大量活动 因此想知道可能会发生什么 有链接 信息 教程吗 P S 这种情况发生在带有 JDK 1 6 0 23 的 Solaris 10 上 该线程将为您提供一些继续操作的步骤 如果
  • 了解 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