z3 使用笔记
z3 简介
z3 是 Microsoft Research 开发的一个定理证明器,支持位向量、布尔值、数组、浮点数、字符串和其他数据类型,可以用来自动化证明定理、线性规划求解和方程求解。
但方程求解效率过低,不建议使用 z3 求解方程 (少量未知数可以使用)。
z3 安装
可以使用 pip 进行安装
1 | pip install z3-solver |
若出现 pip 安装超时或安装失败的情况,请在
https://github.com/Z3Prover/z3/releases 中下载 release
版本包。
这里以 Windows 为例,下载 z3-x64-win.zip
后解压在合适的目录中。
然后将解压目录下的 ./bin
目录添加进入环境变量
Path
;解压目录下的 ./bin/python
添加进入环境变量 PYTHONPATH
即可。
z3 使用
求解过程
- 定义若干某种类型的未知数
- 创建求解器
Solver()
- 添加约束条件
add()
- 进行检查问题是否有解
check()
- 创建解决问题后的模型对象
model()
- 得到解
定义若干某种类型的未知数
1 | from z3 import * |
二元一次方程求解
1 | from z3 import * |
位运算求解
1 | from z3 import * |