首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >z3py表达式简化

z3py表达式简化
EN

Stack Overflow用户
提问于 2013-07-18 10:49:38
回答 2查看 360关注 0票数 1

我正在尝试使用z3py简化表达式,但找不到任何关于不同策略的文档。我找到的最好的资源是一个stack overflow question,它按名称列出了所有的战术。

有没有人能把我链接到关于可用战术的详细文档?在线python教程是不够的。

或者有人可以推荐一种更好的方法来实现这一点。

问题的一个例子是这样的表达式:

我希望这可以简化到x = 1

在这个例子中,使用unit-subsume-simplify出现的策略是可行的。

但是,当我尝试更复杂的示例时,比如x > 1, x < 5, x != 3, x != 4,我得到的结果是x > 1, x < 5, x ≠ 3, x ≠ 4。当我喜欢x = 2的时候。

使用z3py实现这类简化的最佳方法是什么?

My current solution

谢谢,马特

EN

回答 2

Stack Overflow用户

发布于 2013-07-18 21:15:14

可能的解决方案:

代码语言:javascript
复制
x = Int('x')
s = Solver()
s.add(x < 5, x < 4, x < 3, x == 1)
print s.check()
m = s.model()
print m
s1 = Solver()
s1.add(x > 1, x < 5, x != 3, x != 4)
print s1.check()
m1 = s1.model()
print m1

输出:

代码语言:javascript
复制
sat
[x = 1]
sat
[x = 2]

联机运行此解决方案here

票数 0
EN

Stack Overflow用户

发布于 2013-07-19 07:11:47

Reduce的Redlog示例。请让我知道你的想法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17713692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档