gpt4 book ai didi

z3 - SMT 中的混合理论

转载 作者:行者123 更新时间:2023-12-02 01:01:04 29 4
gpt4 key购买 nike

我想构造一个 SMT 公式,其中包含对整数线性算术和 bool 变量的多个断言,以及对实数非线性算术和 bool 变量的一些断言。对整数和实数的断言仅共享 bool 变量。例如,请考虑以下公式:

(declare-fun b () Bool)
(assert (= b true))

(declare-fun x () Int)
(declare-fun y () Int)
(declare-fun z () Int)
(assert (or (not b) (>= (+ x y) (- x (+ (* 2 z) 1)))))

(declare-fun r () Real)
(assert (or (not b) (= (+ (* r r) (* 3 r) (- 4)) 0)))

如果我用这个公式给 z3 喂食,它会立即报告“未知”。但是如果我删除它的整数部分,我立即得到解决方案,它满足变量“r”的约束。我认为这意味着非线性约束本身对于求解器来说并不困难。问题应该在于混合整数的(线性)约束和实数的(非线性)约束。

所以我的问题如下。使用 z3 处理这种混合公式的正确方法是什么(如果有的话)?我对 DPLL(T) 的理解是,它应该能够针对不同的约束使用不同的理论求解器来处理此类公式。如果我错了,请纠正我。

最佳答案

关于z3 - SMT 中的混合理论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37159731/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com