【发布时间】:2015-03-10 00:54:08
【问题描述】:
我正在试验 Z3,尤其是 muZ,但是有些查询失败了,我不明白为什么。 比如这个蕴涵的定义
(declare-rel imp (Bool Bool))
(declare-var post Bool)
(rule (imp false post))
(rule (=> (imp true post) post))
(query (imp true false) :print-certificate true)
给出错误(error "query failed: Illegal head. The head predicate needs to be uninterpreted and registered (as recursive) (= (:var 0) true)")
更大的示例,使用相同结构定义的许多参数按预期工作。此外,通过删除第二条规则,我得到了错误ERROR: certificates are not supported for datalog,这让我怀疑由于某种原因这个问题被错误地解释为datalog,而更大的问题被解释为fixedpoints。
是什么导致此查询失败?
【问题讨论】:
标签: z3