给出像' x< 10和x> = 11或x> 20',并且还假设已经存在可用表达式的解析树(例如[或[[和[< [var:x] [10]] [> = [var:x] [11]] ]] [> [var:x] [20]]]),如何找到导致此表达式求值为真的x的范围/集?
对语法的一些限制是:
答案 0 :(得分:1)
SMT求解器的一个简单替代方法是:
表达式的值只能在这些点上更改,并且因为它们按排序顺序排列,您只需将结果连接在一起即可找到x的允许值的完整列表。
答案 1 :(得分:0)
听起来像Yices或Z3这样的SMT求解器会对你有所帮助。它们对你的问题来说是一种“大枪”,但应该做到这一点。 SMT求解器就像类固醇上的SAT求解器一样,你所拥有的实际上是使用非布尔变量的可满足性问题。