跳到内容

z3探测器/z3

存储库文件导航

Z3公司

Z3是微软研究院的定理证明器。它是根据麻省理工学院许可证.

如果你不熟悉Z3,你可以开始在这里.

稳定版本和夜间版本的预构建二进制文件可从在这里.

Z3可以使用Visual Studio,一个生成文件或使用C制动器。它提供几种编程语言的绑定.

请参阅发行说明有关Z3的各种稳定版本的注释。

生成状态

Azure管道 代码覆盖率 打开Bug Android构建 WASM构建 Windows内部版本
生成状态 代码覆盖率 未决问题 Android构建 WASM构建 窗户

Docker图像.

使用Visual Studio命令提示符在Windows上构建Z3

32位版本,从以下开始:

python脚本/mk_make.py

或者,对于64位构建:

python脚本/mk_make.py-x

然后:

光盘建造n制造

Z3使用C++17。因此,建议的Visual Studio版本为VS2019。

使用品牌和GCC/Clang建造Z3

执行:

python脚本/mk_make.py光盘建造制作sudo make安装

默认注释克++如果可用,则用作C++编译器。如果你更喜欢使用Clang更改mk制作.py调用到:

CXX=clang++CC=clang python脚本/mk_make.py

请注意,Clang<3.7不支持OpenMP。

您还可以使用Cygwin和Mingw-w64交叉编译器为Windows构建Z3。要正确配置这种情况,请确保使用Cygwin自己的python,而不是Python的一些Windows安装。

对于64位构建(来自Cygwin64),使用

CXX=x86_64-w64-mingw32-g++CC=x86-64-w64-mingw32-gcc AR=x86.64-w64-mingw32-AR python脚本/mk_make.py

32位的构建应该类似(但未经测试);对于Cygwin32中的32/64位构建也是如此。

默认情况下,它将在安装z3可执行文件前缀/箱子,库位于前缀/lib,并在中包含文件前缀/包含,其中前缀安装前缀由mk制作.py脚本。通常情况下/美国海军对于大多数Linux发行版,以及/usr/本地用于FreeBSD和macOS。使用这个--前缀=命令行选项更改安装前缀。例如:

python脚本/mk_make.py--前缀=/home/leo光盘建造制作进行安装

要卸载Z3,请使用

sudo进行卸载

要清除Z3,可以删除构建目录并运行mk制作.py再次编写脚本。

使用CMake构建Z3

Z3有一个使用CMake的构建系统。阅读自述-CMake.md文件以获取详细信息。建议用于大多数生成任务,除了构建OCaml绑定。

使用vcpkg构建Z3

vcpkg是一个完整的平台包管理器,您可以使用vcpkg轻松安装libzmq。

执行:

git克隆https://github.com/microsoft/vcpkg.git./bootstrap-vcpkg.bat引导程序#对于powershell./bootstrap-vcpk.sh#对于bash./vcpkg安装z3

依赖关系

Z3本身几乎没有依赖性。它使用C++运行时库,包括多线程的pthreads。可以选择对多精度整数使用GMP,但Z3包含自己的独立整数多精度功能。构建Z3需要Python。要构建Java,请。净值、OCaml、,Julia API需要安装相关的工具链。

Z3绑定

Z3具有各种编程语言的绑定。

.NET

您可以从安装最新版本Z3的nuget包nuget.org网站.

使用--互联网命令行标志mk制作.py以实现这些功能。

请参见示例/dotnet例如。

C类

这些始终处于启用状态。

请参见示例/c例如。

C类++

这些始终处于启用状态。

请参见示例/c++例如。

Java语言

使用--java语言命令行标志mk制作.py以实现这些功能。

请参见示例/java例如。

OCaml公司

使用--毫升带有的命令行标志mk制作.py以实现这些功能。

请参见例/ml例如。

蟒蛇

您可以使用以下命令从pypi安装最新版本的Python包装器Z3

pip安装z3-solver

使用--蟒蛇命令行标志mk制作.py以实现这些功能。

请注意,在某些平台上需要Python包目录(现场包装关于大多数分布和分发包装基于Debian发行版)位于安装前缀下。如果使用非标准前缀您可以使用--皮普克迪尔选项更改Python包目录用于安装。例如:

python脚本/mk_make.py--前缀=/home/leo--python--pypkgdir=/home/lo/lib/python-2.7/site-packages

如果您确实需要安装到非标准前缀,更好的方法是使用Python虚拟环境并在那里安装Z3。Python包也适用于Python3。在Windows下,调用以在Visual C++本机命令生成环境中进行生成。请注意构建/python/z3应该可以从与Z3一起使用python的位置访问目录这取决于libz3.dll文件在这条路上。

虚拟环境来源通风/箱/激活python脚本/mk_make.py—python光盘建造制作进行安装#您将发现虚拟环境中安装了Z3和Python绑定通风/箱/z3-h...蟒蛇-c'进口z3;打印(z3.get_version_string())'...

请参见示例/python例如。

朱莉娅

Julia套餐Z3.jl公司封装了Z3的C++API。有关更新和构建Julia绑定的信息,请参阅src/api/julia.

Web程序集/类型脚本/JavaScript脚本

带有关联TypeScript类型的WebAssembly构建在npm上发布为z3-解算器。有关生成这些绑定的信息,请参阅src/api/js.

Smalltalk公司(福络/Smalltalk/X公司)

项目机器算术提供Smalltalk接口Z3的C API。有关更多信息,请参阅机器算术/README.md

系统概述

系统示意图

接口