首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从命令行调用why3来访问具有备选方案的证明器?

如何从命令行调用why3来访问具有备选方案的证明器?
EN

Stack Overflow用户
提问于 2017-06-08 22:50:21
回答 1查看 74关注 0票数 0

我的配置文件包含不同证明者的替代条目。当我使用该证明器执行why3 prover时,why3的输出是一条消息,通知我的配置文件中有多个具有给定名称的证明器,即这些证明器的列表。

代码语言:javascript
复制
/home/xyz> why3 prove --prover Z3 afile.why
More than one prover in /home/xyz/.why3.conf correspond to "Z3":
Z3 (4.4.1), Z3 (4.4.1 noBV)

如果可能的话,我想知道如何在该证明器的特定替代方案上调用why3。

EN

回答 1

Stack Overflow用户

发布于 2017-07-04 14:13:21

最后,我偷看了一下Why3的源代码,找到了答案。它可以在why3/src/driver/whyconf.mli和why3/src/driver/whyconf.ml中找到。

一种解决方案是在Why3的配置文件中使用验证程序条目的版本和替代字段。例如,如果此文件包含以下两个Z3条目:

代码语言:javascript
复制
[prover]
alternative = "noBV"
command = "%l/why3-cpulimit %t %m -s z3 -smt2 sat.random_seed=42 nlsat.randomize=false smt.random_seed=42 %f"
command_steps = "%l/why3-cpulimit %U %m -s z3 -smt2 sat.random_seed=42 nlsat.randomize=false smt.random_seed=42 memory_max_alloc_count=%S %f"
driver = "/home/ddeharbe/.opam/system/share/why3/drivers/z3_432.drv"
editor = ""
in_place = false
interactive = false
name = "Z3"
version = "4.4.1"

[prover]
command = "%l/why3-cpulimit %t %m -s z3 -smt2 sat.random_seed=42 nlsat.randomize=false smt.random_seed=42 %f"
command_steps = "%l/why3-cpulimit %U %m -s z3 -smt2 sat.random_seed=42 nlsat.randomize=false smt.random_seed=42 memory_max_alloc_count=%S %f"
driver = "/home/ddeharbe/.opam/system/share/why3/drivers/z3_440.drv"
editor = ""
in_place = false
interactive = false
name = "Z3"
shortcut = "z3"
version = "4.4.1"

"alternative“字段因条目不同而不同。因此,要调用第一个条目,命令是:

代码语言:javascript
复制
why3 prove afile.why --prover Z3,4.4.1, 

要调用第二个条目,命令为:

代码语言:javascript
复制
why3 prove afile.why --prover Z3,4.4.1,noBV
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44438987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档