【发布时间】:2016-08-19 13:09:53
【问题描述】:
我是 Z3 的新手(从今天开始)。至今非常喜欢。很棒的工具。不幸的是,语法让我有点困惑。
我想证明如果:
a^3 = xyz = m (with a, x, y, z, m (0..1) )
那么:
3a
我通过尝试找到满足以下条件的模型来做到这一点:
3a > (x+y+z)
这是 Z3 代码:
(declare-const a Real)
(declare-const x Real)
(declare-const y Real)
(declare-const z Real)
(declare-const m Real)
(assert (> a 0))
(assert (< a 1))
(assert (> x 0))
(assert (< x 1))
(assert (> y 0))
(assert (< y 1))
(assert (> z 0))
(assert (< z 1))
(assert (> m 0))
(assert (< m 1))
(assert (= (* (* a a) a) m))
(assert (= (* (* x y) z) m))
(assert (> (* 3.0 a) (+ (+ z y) x) ))
(check-sat)
模型不满意。
我是否成功证明了我想要的?正如我所说,语法让我感到困惑,因为我是个新手。
【问题讨论】: