Z3 &引用;“未知排序”;定点查询中的错误

Z3 &引用;“未知排序”;定点查询中的错误,z3,z3-fixedpoint,Z3,Z3 Fixedpoint,尝试使用query关键字进行定点查询时,我遇到了“未知排序”错误。例如,以下来自定点教程的示例在Z3的在线版本中运行良好 (declare-rel mc (Int Int)) (declare-var n Int) (declare-var m Int) (declare-var p Int) (rule (=> (> m 100) (mc m (- m 10)))) (rule (=> (and (<= m 100) (mc (+ m 11) p) (mc p n))

尝试使用
query
关键字进行定点查询时,我遇到了“未知排序”错误。例如,以下来自定点教程的示例在Z3的在线版本中运行良好

(declare-rel mc (Int Int))
(declare-var n Int)
(declare-var m Int)
(declare-var p Int)

(rule (=> (> m 100) (mc m (- m 10))))
(rule (=> (and (<= m 100) (mc (+ m 11) p) (mc p n)) (mc m n)))

(query (and (mc m n) (< n 91))
 :print-certificate true)
当我从命令行运行它时。我使用从Linux上的github存储库编译的Z3版本4.4.2。我的命令行是:
z3-smt2example.smt


是否需要设置一些编译标志来启用此功能?

我最近将“查询”的格式更改为仅使用谓词。 教程必须更新

 (declare-rel q (Int Int))
 (rule (=> (and (mc m n) (< n 91)) (q m n)))
 (query q :print-certificate true)
(声明相关q(Int))
(规则(=>(和(mc m n)(
非常感谢您的解释,它解决了问题!我现在遇到了一个内存损坏问题,这会导致我的x86_64 Linux机器上的任何定点查询崩溃,我在github bug跟踪器上提交了该机器。
 (declare-rel q (Int Int))
 (rule (=> (and (mc m n) (< n 91)) (q m n)))
 (query q :print-certificate true)