繁体   English   中英

z3获取符号变量C ++ API的大小

[英]z3 getting the size of a symbolic variable C++ API

我正在使用Z3_parse_smtlib2_string解析smtlib2公式。 公式看起来像:

(set-logic QF_AUFBV)(declare-fun SymVar_0 () (_ BitVec 32))(declare-fun SymVar_1 () (_ BitVec 8))...

我使用以下方法解析它:

Z3_ast ast = Z3_parse_smtlib2_string(ctx, (Z3_string)formula, 0, 0, 0, 0, 0, 0);

假设我现在要获取SymVar_0的大小(应该返回32)。 我该怎么办?

谢谢

名为Z3_get_bv_sort_size的函数应该可以完成这项工作。 请注意,这是一个C(不是C ++)函数,因此您还必须提供上下文。

为了其他面临类似问题的用户的利益:Z3中没有符号表可让您查找名称的类型。 您可以通过运行所有子表达式并记录在执行过程中遇到的所有符号及其类型来创建自己。 有关Python中的示例,请参见Z3py:如何从公式中获取变量列表?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM