标签: z3

python中的Z3代码

我已经安装了 python 和 Z3 并设置了 PYTHONPATH 与 Z3 python 目录的路径。

我通过运行 from z3 import * 导入 Z3

但在此之后,我收到一条持续的长错误消息,其以以下方式结束:

File "C:\Program Files\Microsoft Research\Z3-4.1\python\z3core.py", line 34, in init
    _lib = ctypes.CDLL(PATH)
  File "C:\Python27\lib\ctypes\__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found
Run Code Online (Sandbox Code Playgroud)

有趣的是,一切都正常,直到我重新安装了 python 和 Z3。

python z3

1
推荐指数
1
解决办法
2048
查看次数

在 z3 SMT 和 python 中不同

我的问题是“Distinct”在 z3 python 中有效吗?。我比较了以下代码,但似乎没有给出相同的结果:

(declare-const x Int)
(declare-const y Int)
(assert (distinct x y))
(check-sat)
(get-model)
Run Code Online (Sandbox Code Playgroud)

结果是:

sat

  (model 
  (define-fun y () Int
    0)
  (define-fun x () Int
    1)
  )
Run Code Online (Sandbox Code Playgroud)

我添加了否定断言只是为了测试,结果未满足,这是正确的:

(assert (= x y))

unsat
Z3(6, 10): ERROR: model is not available
Run Code Online (Sandbox Code Playgroud)

但是当我在 python 中使用 z3 时,它总是给我如下所示:

x = Int('x')
y = Int('y')
Distinct(x, y)
s = Solver
s = Solver() 
s.check()
Run Code Online (Sandbox Code Playgroud)

当我添加以下断言时,它应该给我 unsat 但它返回 sat:

s.add(x == y)
[y = 0, x = 0]
Run Code Online (Sandbox Code Playgroud)

这是否意味着我使用了错误的语法?

z3 z3py

1
推荐指数
1
解决办法
2710
查看次数

Z3 的默认求解器是什么?

【新手】。根据http://rise4fun.com/Z3/tutorialcontent/strategies,“smt”是 Z3 的主要策略。但是,明确地使用它甚至可以解决微不足道的问题。如何在战术序列中引用默认的 Z3 求解器?

http://rise4fun.com/Z3/K8nn

(declare-fun var1 () Real)
(assert (= (* var1 var1) 9.0))
(assert (< var1 0.0))
; Works
;(check-sat)
;(get-model)
; Breaks
(check-sat-using smt)
(get-info :reason-unknown)
Run Code Online (Sandbox Code Playgroud)

smt z3

1
推荐指数
1
解决办法
563
查看次数

Z3 SMT求解器名称的含义是什么?

Microsoft Research 的 Z3 SMT 求解器被广泛视为该领域的领导者。

“Z3”这个名字背后有什么含义还是纯粹是一个随机的项目名称?我浏览了几篇介绍该项目的论文和幻灯片,但似乎都没有解释这个名称。

z3

1
推荐指数
1
解决办法
281
查看次数

ocaml 上的 Z3 绑定

我目前正在使用 ocaml 4.06.0 并且我正在尝试使用 Z3 sat 求解器。我正在使用 opam 的 oasis 来编译文件(它成功地构建了所有内容)。但是,当我运行生成的本机代码时,出现以下错误:error while loading shared libraries: libz3.so. 我尝试重新安装 z3 软件包,但错误仍然存​​在。谁能帮我解决这个问题,因为我不知道还能尝试什么?

ocaml sat-solvers z3 opam oasis

1
推荐指数
1
解决办法
600
查看次数

Z3有没有一种“参考手册”

在阅读了https://www.rise4fun.com/Z3/tutorial上的优秀教程后,我开始尝试 Z3 。但现在我想了解Z3 的 SMTLIB2 方言中可用的所有命令的概述。

不幸的是,我只找到了不同语言绑定的参考手册,但没有找到 SMTLIB2 本身的参考手册。

z3

1
推荐指数
1
解决办法
1914
查看次数

如何在 SMT 2.0 中定义返回 4 个参数的最小值的函数

我想在 SMT 2.0 中定义一个函数,返回 4 个整数值中的最小值。

smt z3

0
推荐指数
1
解决办法
2571
查看次数

如何逐步使用z3和没有命题值的模型?

你能告诉我如何逐步使用求解器Z3吗?而且,当我使用时v.name(),如何才能获得没有命题价值的模型?比如,在调用程序后cout<<v.name()<<m.get_const_interp(v);,我们可以得到模型 x = 3, p = true, y = 4,因为我不需要p = true,可以从模型集中删除吗?

model z3

0
推荐指数
1
解决办法
1047
查看次数

在线使用Z3Py证明x ^ 2的导数是2x

证明的代码是

x, d = Reals('x d')
t = (simplify(simplify(((x + d)**2 - x**2)/d, som = True), mul_to_power=True))
print t
prove(Implies(d != 0, t == 2*x + d))
prove(Implies(d == 0, 2 * x + d == 2*x))
Run Code Online (Sandbox Code Playgroud)

而输出是

(2·d·x + d2)/d
proved
proved
Run Code Online (Sandbox Code Playgroud)

如果你知道使用Z3Py的更紧凑的证据,请告诉我.非常感谢.

z3

0
推荐指数
1
解决办法
215
查看次数

需要帮助在c ++程序中使用z3 API

我想在我的C++程序中使用z3 API.我想知道要包含哪些头文件以及如何运行包含z3函数等的程序.

我看到了example.cppz3源代码附带的文件,为了运行这个文件,我不得不make examples在内部执行命令的build目录中运行

g++ -o cpp_example  -I../src/api -I../src/api/c++ 
    ../examples/c++/example.cpp libz3.so -lpthread -fopenmp -lrt
Run Code Online (Sandbox Code Playgroud)

现在,如果我创建任何程序,../src/api每次需要编译程序时,是否需要像这样编译它(包含和链接lib文件)?

请帮帮我,我之前从未使用过z3.任何帮助是极大的赞赏.:)

compilation g++ theorem-proving z3

0
推荐指数
1
解决办法
1678
查看次数

如何检查 z3 中是否仅存在?

我需要 z3 中的一些临时变量,我不需要计算值,只需要检查它是否存在就足够了。

这是我正在做的(简单形式):

import z3

def maj(a, b, c):
    return (a & b) ^ (a & c) ^ (b & c)

def func(a, b, c):
    a = z3.RotateRight(a, 5) ^ z3.BitVecVal(0xafaf, 16)
    b = z3.RotateRight(b, 2) ^ z3.RotateRight(b, 7)
    c = z3.RotateRight(c, 11) ^ z3.LShR(c, 3)
    return a + c, b + c, maj(a + b, a + c, b + c)

solver = z3.SolverFor('QF_BV')
some_var = 0x0000
_x = z3.BitVec('x', 16)
x = _x
y = z3.BitVecVal(some_var, 16) …
Run Code Online (Sandbox Code Playgroud)

python z3 z3py

0
推荐指数
1
解决办法
262
查看次数

标签 统计

z3 ×11

python ×2

smt ×2

z3py ×2

compilation ×1

g++ ×1

model ×1

oasis ×1

ocaml ×1

opam ×1

sat-solvers ×1

theorem-proving ×1