【发布时间】:2016-07-25 23:02:39
【问题描述】:
我目前正在尝试使用define-fun-rec 编写一个SMT 脚本。我已经使用 Z3 4.4.2 版和 CVC4 1.4 版进行了测试。据我所知,这些是两者的最新版本,并且都支持该功能*。但是,两者似乎都无法识别该命令。
(我根据 Nikolaj 的回复对此进行了一些更改。它仍然给出错误消息。)具体来说,给定:
(define-fun-rec
fac ((x Int)) Int
(
ite (<= x 1)
1
(* x (fac (- x 1)))
)
)
(assert (= (fac 4) 24))
(check-sat)
Z3 输出:
unsupported
; define-fun-rec
(error "line 10 column 17: unknown function/constant fac")
sat
CVC4 输出:
(error "Parse Error: fac.smt2:1.15: expected SMT-LIBv2 command, got `define-fun-rec'.
(define-fun-rec
^
")
我最好的猜测是我需要设置某种标志,或者我需要使用一些特定的逻辑,但是我很难找到任何类型的详细说明或使用 define-fun- 的示例推荐。任何意见,将不胜感激。谢谢!
【问题讨论】: