我一直在使用Z3检查是否可以满足条款。但另外我需要简化人类消费的条款,例如:当n是Int简化并且(n> 4,n!= 5)到n> 5.在Z3或其他工具中任何人知道如何做到这一点?
答案 0 :(得分:2)
正如您可能已经注意到Z3在API上暴露了一个简化器,您也可以在SMT-LIB中使用它。来自rise4fun.com/z3和rise4fun.com/z3py的Z3教程提供了几个简化示例。但是,简化器不会尝试任何正常的表单转换,因此不太可能产生您想要的样式的结果。特别地,它不简化连接和(n> 4,n!= 5)到n> 1。 5。
答案 1 :(得分:0)
可能的答案:
n = Int('n')
antecedent = And(n >4, n != 5)
claim1 = n > 5
prove(Implies(antecedent, claim1))
输出:
proved