首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SMT简化术语

使用SMT简化术语
EN

Stack Overflow用户
提问于 2013-06-21 10:42:36
回答 2查看 185关注 0票数 1

我一直在使用Z3检查条款是否可以满足。但除此之外,我还需要简化人类使用的术语,例如,当n是Int simplify时,将(n>4,n != 5)简化为n> 5。有人知道如何在Z3中或通过其他工具做到这一点吗?

EN

回答 2

Stack Overflow用户

发布于 2013-06-21 11:11:58

正如您可能已经注意到的,Z3有一个通过API公开的简化程序,您也可以在SMT-LIB中使用它。rise4fun.com/z3和rise4fun.com/z3py上的Z3教程提供了几个简化程序的示例。但是,简化程序不会尝试任何范式转换,因此它不太可能产生您所暗示的所需样式的结果。特别是,它没有将合取和(n> 4,n != 5)简化为n> 5。

票数 2
EN

Stack Overflow用户

发布于 2013-06-26 09:23:11

可能的答案:

代码语言:javascript
复制
n = Int('n')

antecedent = And(n >4, n != 5)
claim1 = n > 5

prove(Implies(antecedent, claim1))

输出:

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

https://stackoverflow.com/questions/17226931

复制
相关文章

相似问题

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