首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取SMT-LIB公式

提取SMT-LIB公式
EN

Stack Overflow用户
提问于 2014-10-31 02:20:44
回答 1查看 358关注 0票数 2

是否有任何方法从.smt2 API的求解器/模型/上下文类中提取SMT公式,包括所有的声明、定义和约束到C++文件中。即与"Z3_parse_smtlib2_string“函数相反的功能。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-31 13:11:53

说得好。C++缺乏此功能。Python绑定现在为解决器类提供了它。

下面是一个可能的草图:

代码语言:javascript
复制
    std::string to_smt2() {
        expr_vector es = assertions();
        ast* const* fmls = es.ptr();
        unsigned sz = es.size();
        if (sz > 0) {
            --sz;
            fml = fmls[sz];
        }
        else {
            fml = ctx().bool_val(true);
        }
        std::string result;
        result = Z3_benchmark_to_smtlib_string(ctx(),
                                               "", "", "", "", 
                                               sz, 
                                               fmls, 
                                               fml);
        return result;
    }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26666594

复制
相关文章

相似问题

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