是C ++参数:逻辑:在Z3不稳定分支pcated超时德$ P $? [英] Are C++ parameters :logic and :timeout deprecated in Z3 unstable branch?

查看:217
本文介绍了是C ++参数:逻辑:在Z3不稳定分支pcated超时德$ P $?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有关我的应用程序code,我用Z3 PARAMS以下设置为我解算器

For my application code, I used the following settings for z3 params for my solver

   z3::params p(context);
   p.set(":relevancy", static_cast<unsigned>(1));
   p.set(":logic", QF_ABV);
   p.set(":timeout", timeout); 
   solver.set(p);

更新到最新的Z#各自不稳定之后我得到了C ++异常本质,指出逻辑和超时无效参数。我没有找到任何逻辑等效选项,所以我认为正在自动推导。然而,对于超时,有两个选项soft_timout和solver2_timeout。我知道solver2_timeout用于增量求解器(即带推/持久性有机污染物),因此我改变了code使用下面的参数。

After updating to latest Z# unstable I got C++ exceptions essentially stating that logic and timeout are not valid parameters. I did not find any equivalent option for logic, so I assume that is being deduced automatically. However, for timeout, there are two options soft_timout and solver2_timeout. I know that solver2_timeout is used for incremental solver (ie. with push/pops), hence I changed the code to use the following parameters.

 z3::params p(context);
 p.set(":relevancy", static_cast<unsigned>(1));
 p.set(":soft_timeout", yices_timeout); 
 solver.set(p)

时的变化是否正确?如何从超时so​​ft_timeout有什么不同?有没有什么地方保持有效Z3 :: PARAMS一个文档?

Is the change correct? How is soft_timeout different from timeout? Is there a documentation for valid "z3::params" maintained somewhere?

推荐答案

Z3 -p 通过运行获得的参数的文档。通过运行获得有关特定选项的详细信息Z3 -pp:OPTION_NAME

The documentation for the parameters is obtained by running z3 -p. More information about a particular option is obtained by running z3 -pp:option_name.

参数的基础设施已经看到了在4.3.2重大变化;现在有参数模块和soft_timeout所在的SMT模块中,即正确的名称是 smt.soft_timeout 。没有设置逻辑,但我们不能假设它会自动确定(仅适用于其中的一些)。相反,我们现在可以构造求解器(通过在C ++中求解::求解器(上下文和C,字符常量*逻辑))对象为特定的逻辑,或使用一个在predefined SMT战术(如见,在战略教程

The parameter infrastructure has seen major changes in 4.3.2; there are now parameter modules and the soft_timeout resides in the smt module, i.e., the proper name is smt.soft_timeout. There is no setting for the logic, but we can't assume that it will be determined automatically (works only for some of them). Instead, we can now construct Solver objects for a particular logic (in C++ via solver::solver(context & c, char const * logic)), or use one of the predefined SMT tactics (see e.g., the strategies tutorial)

这篇关于是C ++参数:逻辑:在Z3不稳定分支pcated超时德$ P $?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆