在C ++ API中支持Z3的浮点理论

时间:2015-10-23 12:38:30

标签: c++ api floating-point z3

从最新版Z3,Z3-4.4.1的RELEASE_NOTES开始,它支持浮点理论。我已经成功地以离线方式测试了它。但是,在我目前的项目中,Z3需要在C ++ API中使用,在阅读相关文档和源代码之后,我还没有找到浮点理论的任何API函数。在C ++ API中是否支持Z3的浮点理论?

然而,也许我可以将我的约束集写入smt格式文件,然后使用Z3 API来解析此文件。但是,这是我最后的选择。

1 个答案:

答案 0 :(得分:0)

C ++ API本质上是针对常见习语的C API的包装器,例如,用于自动化引用计数。这两个可以并且应该一起使用。例如,C-API example显示了如何通过调用C函数Z3_mk_bvsrem来创建一个位向量带符号的余数项(没有C ++函数)。同样的技巧适用于所有浮点项;只需通过相应的C函数创建它们,然后将它们保存在(C ++)z3::expr对象中。