z3:超时的原因可能是什么(rise4fun)

时间:2015-05-30 08:27:04

标签: z3

问题是:当我在rise4fun中尝试时超时:
我已经尝试过不使用“forall”,但它也不起作用。

(declare-const x Real)
(declare-const y Real)
(declare-const t Real)
(declare-const u Real)
(declare-const v Real)
(declare-const w Real)
(declare-fun f (Real) Real)
(assert (forall ((x Real) (y Real)) (<= (+ (f x) (f y)) (* 2 (f (/ (+ x y) 2))))))

(assert (<= (+ 2 (f (* 2 (+ t u))) (f (* 2 (+ v w))) (f (+ t u v w))) (+ 2 (* 3 (f (+ t u v w))))))

(check-sat)
(get-model)

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

该示例使用非线性算术,函数和量词。 Z3不以任何特定方式处理此组合。 最新版本的Z3在没有量词的情况下在默认模式下快速终止,但主要是幸运而不是使用 决定程序,在这种情况下。然而,使用量词,tZ3进入 搜索空间无法解决函数f。