Z3中带否定的数据日志
我正在尝试用Z3编写这个数据日志程序:Z3中带否定的数据日志,z3,Z3,我正在尝试用Z3编写这个数据日志程序: p :- r. q :- \r. 根据,我写道: (declare-rel p ()) (declare-rel q ()) (declare-rel r ()) (rule (=> r p)) (rule (=> (not r) q)) (set-option :fixedpoint.engine datalog) (rule r) (query p :print-answer true) 现在,我想将(规则r)替换为(规则(不是r)
p :- r.
q :- \r.
根据,我写道:
(declare-rel p ())
(declare-rel q ())
(declare-rel r ())
(rule (=> r p))
(rule (=> (not r) q))
(set-option :fixedpoint.engine datalog)
(rule r)
(query p :print-answer true)
现在,我想将(规则r)
替换为(规则(不是r))
,以推断q
,但我得到:
(错误“查询失败:头非法。头谓词需要
未解释和注册(作为递归)(不是r)“)
默认情况下,
r
假定为false,因此您不需要说(规则(不是r))
(查询q:打印答案true)
将生成true