我想使用let
语句从z3中获得解决方案而无需简化。防止解决方案被简化
例如,如果我给出如下:
(declare-const x Int)
(elim-quantifiers (exists ((x.1 Int))
(and (or (and (= (- x.1 2) 0) (<= (- x.1 9) 0))
(and (or (= (- x.1 2) 0) (and (<= (- x.1 4) 0)
(and (<= (- 4 x.1) 0)
(<= (- x.1 11) 0)))) (<= (- x.1 9) 0))) (= (- (+ x.1 2) x) 0))))
我回来了解决方案:
(let ((a!1 (and (or (and (<= x 4) (>= x 4)) (and (<= x 6) (>= x 6) (<= x 13)))
(<= x 11))))
(or (and (<= x 4) (>= x 4) (<= x 11)) a!1))
有没有办法告诉Z3不提取一些复杂的表达式为let语句?如果我在没有发言权的情况下得到答案,我将更容易解析结果。
谢谢。这有很大帮助。 – sriraj
太好了。你能接受答案吗?因此,其他用户会知道答案可以解决问题中发布的问题。谢谢 –
这些选项是否也可以使用C API设置,如果是的话,怎么样? –