Z3 get-answer返回不受支持

时间:2013-11-05 20:04:34

标签: z3 fixed-point

我正在使用Z3中的定点引擎来编码几个通用喇叭配方。该查询结果不尽如人意。在Z3Py中,使用get_answer()将估值返回到未解释的关系。但是,在SMTLIB2格式中,get-answer返回unsupported。这是我的计划:

(declare-var x Int)
(declare-var y Int)

(declare-rel I (Int) interval_relation)
(declare-rel I1 (Int) interval_relation)
(declare-rel err (Int) interval_relation)

(rule (=> (= x 0) (I x) ))
(rule (=> (and (= y (+ x 1)) (I x) ) (I1 y) ))
(rule (=> (and (> y 2) (I1 y)) (err y) ))

(query (err y)
    :engine pdr
:use-farkas true
:print-answer true
)
(get-answer)

我使用Z3 version 4.3.2获得的输出是:

unsat
unsupported
; get-answer

在Z3Py中,创建固定点上下文fp=Fixedpoint(),然后执行print fp.get_answer()会将估值返回到II1err。有没有办法以SMTLIB2格式获得相同的? 感谢。

1 个答案:

答案 0 :(得分:0)

评论部分基本上回答了这个问题。 “查询”的SMT-LIB2扩展名采用了您的示例所示的属性。 事实上:打印答案等于得到答案。