我正在尝试在Z3中编写此Datalog程序:
p :- r.
q :- \r.
根据this tutorial,我写道:
(set-logic HORN)
(declare-const p Bool)
(declare-const q Bool)
(declare-const r Bool)
(assert (=> r p))
(assert (=> (not r) q))
(assert r)
(check-sat)
(get-model)
但是check-sat
产生unknown
。怎么来的 ?
删除定义q的规则将产生sat
。