z3相关内容

采用数组数据类型的Z3建模图

我试图在Z3中为有向图建模,但我被卡住了。我在图中添加了一个公理,即边的存在意味着它所连接的节点的存在。但仅此一项就会导致未命中 GraphSort = Datatype('GraphSort') GraphSort.declare('Graph', ('V', ArraySort(IntSort(), BoolSort())), ('E', ArraySort(IntSor ..
发布时间:2022-08-21 22:38:52 Python

以SMT2格式保存Z3求解器的状态(&Q)

是否可以使用Z3 API(例如,Python API)将求解器的当前状态保存到SMT2格式的文件中,包括求解器已学习的内容(在SAT求解中,我们称其为“已学习的子句”)? 因为我希望能够将求解器的状态保存在临时文件中,以便以后继续求解,以便有一些时间了解我应该对其进行哪些进一步查询。 提前表示感谢... 推荐答案 SMT2没有规定保存给定的求解器状态,这无疑会因求解器的不同 ..
发布时间:2022-08-21 22:30:29 Python

用C++API实现Z3中的变量集合

我想定义一个变量集合,如“x_1”...“X_1000”,使用Z3 C++API。这可以使用for循环来完成吗?我的意思是这样的: expr x[100] ; for( i = 0; i ..
发布时间:2022-08-21 22:27:01 其他开发

如何使用Z3解算器解决柯克曼的女学生问题?

我是SMT问题的新手,并尝试使用Dennis Yurichev编写的一个例子来复制如何在SAT/SMT中使用Z3/MK85解决Kirkman的女学生问题。但当我试图获得模型(我使用的是Z3)时: m["%d_%d" % (person , day)] Python有一些错误: 回溯(最近一次调用): 文件“”,第1行, 文件“D:3z3-master z3-maste ..
发布时间:2022-08-21 22:10:39 Python

尝试在Python中使用Z3找到布尔公式的所有解

我是Z3的新手,正在尝试创建一个求解器,它返回布尔公式的所有可满足解。我记下了其他帖子的笔记,我编写了我希望能起作用的代码,但事实并非如此。问题似乎是,通过添加前面的解决方案,我删除了一些变量,但它们在后来的解决方案中返回? 目前我只想解决a或b或c。 如果我解释得不好,请让我知道,我会尝试进一步解释。 提前感谢您的回复:) 我的代码: from z3 import ..
发布时间:2022-08-21 21:51:21 其他开发

如何在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")) (re.* (str.to.re "c"))))) (check-sat) 但是,我在z3 ..
发布时间:2022-08-21 21:40:49 其他开发

如何使Z3';(Python)的SAT解算偏向某个标准,例如更倾向于有更多否定的文字

在Z3(Python)中,有没有办法将SAT搜索“偏向”“条件”? 一个案例:我希望Z3获得一个模型,但不是任何模型:如果可能,请给我一个有大量否定文字的模型。 例如,如果我们必须搜索A or B,可能的模型是[A = True, B = True],但我宁愿收到模型[A = True, B = False]或模型[A = False, B = True],因为它们有更多的False分 ..
发布时间:2022-08-21 21:35:15 其他开发

哪些统计数据表明 Z3 有效运行?

SMTLib2 指令 (get-info all-statistics) 显示多个数字,例如 编号.冲突:4数量传播:0(二进制:0)数量质量.安装:23 为了测试不同的公理化和编码,我想知道哪些数字适合声明一个 Z3 运行比另一个更好/更有效. 从名字猜测我会说num.质量.inst - 量词实例化的数量 - 是一个很好的指标(越低 = 越好),但其他的呢? 解决方案 量词实例 ..
发布时间:2022-01-07 23:55:34 其他开发

Z3实数算术统计

给定一个使用 Z3 实数编码的问题,Z3/smt2/st 产生的哪些统计数据可能有助于判断实数引擎是否“有问题/做了大量工作"“? 在我的例子中,我有两个几乎等效的问题编码,都使用实数.然而,编码中的“小"差异在运行时产生了很大差异,即编码 A 需要 2:30 分钟,编码 B 需要 13 分钟.Z3 统计数据显示 conflicts 和 quant-instantiations 大部分是等效 ..
发布时间:2022-01-07 23:27:26 其他开发

在 Windows 上构建 64 位 Z3 时出错

我按照说明使用 Visual Studio Community 2015 在 64 位 Windows 8.1 系统上通过运行构建 Z3 python 脚本/mk_make.py -x 但是当我运行 nmake 时,出现以下错误: C:\Program Files (x86)\Windows Kits\8.1\include\um\winbase.h(8848):错误 C3861:“_Int ..
发布时间:2021-11-25 06:27:39 C#

Z3 API:是否可以检查 AST

在 Z3 中没有直接的方法来遍历一个已经存在的 Z3_ast 表达式,这对我来说从 API 中似乎很清楚.然而,是否有一种间接的方式,例如,拆分一个连词,用一个术语替换一个 Z3_ast 中的一个术语,例如通过 Z3_parse_smtlib2_string 获得或作为一个插值获得 Z3_get_interpolant(这些是 Z3 的输出,因此能够检查它们是有意义的). 解决方案 遍历是 ..
发布时间:2021-11-15 03:55:09 其他开发

将 Z3 整数表达式转换为 C/C++ int

我是 Z3 的新手,并在此处和 Google 上搜索了我的问题的答案.不幸的是,我没有成功. 我使用的是 Z3 4.0 C/C++ API.我声明了一个未定义的函数 d: (Int Int) Int,添加了一些断言,并计算了一个模型.到目前为止,效果很好. 现在,我想提取模型定义的函数 d 的某些值,比如 d(0,0).以下语句有效,但返回表达式而不是函数值,即 d(0,0) 的整数. ..
发布时间:2021-11-15 01:32:35 C/C++开发

从 z3 模型读取 z3 数组的 func interp

假设我在一个公式中有 2 个数组,我想使用 z3 检查其可满足性.如果 z3 返回 sat,我想读取 z3 模型中的第一个数组并将其打印为键、值对和默认值.后来我想把它转换成地图,并对其做进一步的分析.这是我运行的示例: void find_model_example_arr() {std::cout ..
发布时间:2021-11-15 00:26:47 C/C++开发

相当于 Z3 API 中的define-fun

使用带有文本格式的 Z3,我可以使用 define-fun 定义函数以供以后重用.例如: (define-fun mydiv ((x Real) (y Real)) Real(如果(不是(= y 0.0))(/xy)0.0)) 我想知道如何使用 Z3 API(我使用 F#)创建 define-fun 而不是在任何地方重复函数体.我想用它来避免重复和更轻松地调试公式.我尝试使用 Context. ..
发布时间:2021-11-15 00:21:42 其他开发

获得新的 unsat 核心

那里 我试图从公式中提取子句并每次更改一个子句的极性,如果已解决,则计算模型并将该子句放入集合中.如果解决了 unsat,则找出新的 unsat 核心.但是增量调用unsat core函数,即使解决了unsat,求解器也无法给出新的unsat cores.代码如下: context c;expr x = c.int_const("x");expr y = c.int_const("y"); ..
发布时间:2021-10-04 20:42:25 其他开发

使用 SMTLib for z3 的 Datalog 中的循环关系

我想用 SMTLib 格式表达这个问题,并使用 Z3 进行评估. edge("som1","som3").边缘(“som2",“som4").边缘(“som4",“som1").边缘(“som3",“som4").路径(x,y): - 边缘(x,y).% x 和 y 是字符串路径(x,z):-边(x,y),路径(y,z).:- 路径(x,y), 路径(y,x).%循环路径. 我的问题是如何编写 ..
发布时间:2021-10-04 20:42:22 其他开发

使用 z3 Python API 的循环内求解器超时

根据之前的建议,我正在尝试在使用 z3Py 时为求解器设置提前超时. 同样,没有所有细节,这就是我正在尝试的: 用于范围内的位(A, B, incrmt)s = 求解器();s.set("timeout", 30) #30, 3000, 30000, 60000 无变化s.add(一些约束)if(s.check() == sat):打印 "Sat, %d," %(bits)别的:打印“Sa ..
发布时间:2021-10-04 20:42:19 Python