首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用z3来“简化”smt2 2文件吗?

我可以使用z3来“简化”smt2 2文件吗?
EN

Stack Overflow用户
提问于 2022-06-13 17:24:20
回答 1查看 99关注 0票数 0

我想使用一些z3策略来修改".smt2“文件中的表达式。我这样做是为了让其他SMT解决者(cvc、mathsat等)能够从z3战术中受益,即使他们不支持他们。

下面是一个如何通过Z3的Python来实现的示例:

代码语言:javascript
复制
def simplify_smt2_file(file_path: str) -> str:
    tactics = ("simplify", "solve-eqs", "propagate-values", "simplify")
    query = z3.parse_smt2_file(file_path)
    goal = z3.Goal()
    goal.add(query)
    simplified = z3.Then(*tactics)(goal).as_expr()
    solver = z3.SolverFor("NIA")
    solver.add(simplified)
    return solver.sexpr()

但是,我需要不使用Python。有没有办法通过Z3的SMT2接口来实现呢?

EN

回答 1

Stack Overflow用户

发布于 2022-06-13 17:37:49

据我所知,使用SMTLib接口并不容易做到这一点。如果您一定要使用SMTLib,那么您必须真正地运行z3,解析输出,并将其反馈给其他解决程序。

您也可以在https://groups.google.com/g/smt-lib上询问,这是SMTLib社区中的人订阅的。

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

https://stackoverflow.com/questions/72606803

复制
相关文章

相似问题

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