设置超时始终是一个热门话题,并且有许多相关的答案,但是,在Z3的最新不稳定分支(4.4.2)(Ubuntu-12.04-64)中会出现一个新的警告。
在我的项目中使用Pure C API,我使用Z3_assert_cnstr()
添加约束,使用Z3_check_and_get_model()
来检查结果。
我将超时设置为:
Z3_set_param_value(cfg, "timeout", "10");
10毫秒。
当我运行项目时,会出现如下警告:
WARNING: unknown parameter 'timeout'
Legal parameters are:
auto_config (bool) (default: true)
debug_ref_count (bool) (default: false)
dump_models (bool) (default: false)
model (bool) (default: true)
model_validate (bool) (default: false)
proof (bool) (default: false)
rlimit (unsigned int) (default: 4294967295)
smtlib2_compliant (bool) (default: false)
timeout (unsigned int) (default: 4294967295)
trace (bool) (default: false)
trace_file_name (string) (default: z3.log)
type_check (bool) (default: true)
unsat_core (bool) (default: false)
well_sorted_check (bool) (default: false)
根据规范,“超时”是一个合法的参数。
我错过了什么吗?
我测试使用“10u”而不是“10”作为第三个参数来表示无符号数,但是,没有任何改变。此外,从主分支修复的ASSERTION VIOLATION是我使用不稳定分支的原因。