muZ是否支持未解释的功能?
我想做以下事情:
(declare-fun f (Int) Int)
(declare-rel r (Int))
(declare-var X Int)
(rule (=> (= (f X) X) (r X)))
(query (r X)
:default-relation smt_relation2
:engine datalog
:print-answer true)
但似乎我需要提供f
的定义,因为Z3返回以下输出:
% z3 -smt2 test.z3
error "query failed: Uninterpreted 'f' in r(#0) :-
(= (f (:var 0)) (:var 0)).
")
unknown
我认为我可以将我的功能建模为关系,但想知道是否还有另一种解决方法......
谢谢!
-N
答案 0 :(得分:2)
不支持未解释的功能。在某些情况下,它将适用于数组,但数组的处理是临时的(在pdr引擎中没有泛化步骤)。您可能还想使用pdr引擎来解决此类问题。