z3 SMT求解器:运行QF_BVRE基准测试后的未知结果

时间:2014-07-01 06:38:18

标签: z3 smt

我刚刚下载了seq和regexp排序的基准(使用z3-4.3.2)。运行“membership_1.smt2”后,当我得知结果时会出现什么问题?

我没有指定任何进一步的命令行选项。根据基准测试,它应该会产生sat,但是没有任何模型就会打印出未知数据。

谢谢

修改

我进一步注意到,“重新开始”无法识别。这与z3的版本有关,还是你忘了命令行选项?

1 个答案:

答案 0 :(得分:0)

首先,我不知道OP或评论者在哪里找到" membership_1.smt2"示例输入。我检查了SMT-LIB benchmarks,以及Z3,S3和Z3-str的来源,但无法找到它。

无论如何,问题在于OP正在测试为S3Z3-str编写的基准测试,并针对未修改版本的Z3运行它。 S3和Z3-str需要修改版本的Z3才能处理这些扩展。这在S3网站上有描述[S3:用于网络安全分析的符号字符串解算器,http://www.comp.nus.edu.sg/~trinhmt/S3/,2016年8月4日访问]:

  

Z3解算器的修改版

     
      
  • 修改后的Z3的源代码可用here
  •   
  • 我们修改Z3以使弦理论与算术理论相互作用。
  •   
  • 这些新添加的API方法允许我们查询字符串变量的长度,以及不同长度之间的关系   字符串变量,如our CCS'14 paper

  • 所示   
  • 我们的修改版Z3也被Z3-str GROUP用于integer/string theory integration

  •   

点击(unmodified) Z3 source显示没有匹配"重新开始"或者"重新结束"。点击修改后的版本会显示这些参数在z3-source-060115.ziplib/seq_decl_plugin.cpp中定义。