C#Z3(版本4.3)ParseSMTLIB2String说“不支持”

时间:2015-12-22 09:06:52

标签: c# z3

我使用以下代码将字符串解析为Z3,但它警告不支持。

string str = "(set-option :fixedpoint.engine datalog)\n(declare-rel edge ( (_ BitVec 2) (_ BitVec 2)))\n(declare-var a (_ BitVec 2))\n(declare-var c (_ BitVec 2))\n(declare-var b (_ BitVec 2))\n\n(rule (=> ( edge a  b  )( edge a  c  )))\n(rule ( edge #b00  #b01  ))\n(rule ( edge #b01  #b10  ))\n(rule ( edge #b10  #b11  ))";

Context ctx = new Context(new Dictionary<string, string>()
                                          {
                                              {"MODEL", "true"}
                                          });
ctx.ParseSMTLIB2String(str);

错误如下所示: enter image description here

不确定我的问题在哪里,有人可以为此提供帮助吗?

1 个答案:

答案 0 :(得分:1)

declare-rel,declare-var,rule和query不是SMT-LIB2命令。 SMT2解析器仅支持SMT-LIB2格式并返回断言 在文件或字符串中作为表达式。