我已经安装了Z3版本4.1,并尝试在Java应用程序中以编程方式使用它。我的应用程序正在通过ProcessBuilder与Z3通信。通过使用/ version命令行参数,可以将Z3的版本验证为4.1。
但是,Z3不接受负常量作为表达式的一部分。当我尝试提供负整数时,我收到以下消息:
(error "line 4 column 31: unknown constant -1")
这是我提供给Z3的输入:
(push)
(declare-fun y () Int )
(define-fun x () Int y )
(assert (and (<= y 1000) (>= y -1) ) )
(assert (= x 42) )
(check-sat)
(pop)
我正在使用以下参数实例化Z3:
Z3 /smt2 /in /t:2
感谢您的帮助。预先谢谢你。
答案 0 :(得分:2)
尝试(- 1)
。请参见http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2017-07-18.pdf