【问题标题】:"unknown sort" error in fixed point queries定点查询中的“未知排序”错误
【发布时间】:2016-01-15 18:45:25
【问题描述】:

我在尝试使用 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)

返回:

(error "line 9 column 13: unknown sort 'mc'")

当我从命令行运行它时。我在 Linux 上使用从 github 存储库编译的 Z3 版本 4.4.2。我的命令行是:z3 -smt2 example.smt

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

【问题讨论】:

    标签: z3 z3-fixedpoint


    【解决方案1】:

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

     (declare-rel q (Int Int))
     (rule (=> (and (mc m n) (< n 91)) (q m n)))
     (query q :print-certificate true)
    

    【讨论】:

    • 非常感谢您的解释,它解决了问题!我现在遇到了内存损坏问题,这导致我的 x86_64 Linux 机器上的任何定点查询崩溃,我在 github 错误跟踪器上以 Issue #420 提交。
    猜你喜欢
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2012-11-14
    • 2018-06-20
    • 2013-11-01
    • 2013-07-11
    • 1970-01-01
    相关资源
    最近更新 更多