如何在z3中将表达式转换为字符串

时间:2013-02-05 17:50:26

标签: expression tostring z3

有两个expr_vector A,B,我正在尝试使用

比较它们中的元素
if(strcmp(A[i].ToString(),B[i].ToString()) == 1)

错误'class z3 :: expr'没有名为'ToString'的成员,可以在override string ToString ( ) 找到。

或者你能告诉我如何比较两个expr_vector中的变量吗?例如变量q1分别位于向量<expr> A和B中。

1 个答案:

答案 0 :(得分:1)

您在问题中提供的链接适用于Z3 C#(。Net)API,您的问题表明您使用的是C ++ API(expr_vector是Z3 C ++ API的一类)。

要测试ab是否相等,abz3::expr,我们应该使用eq(a, b)eq函数只是Z3_is_eq_ast的包装,在z3++.h定义

friend bool eq(ast const & a, ast const & b) { return Z3_is_eq_ast(a.ctx(), a, b) != 0; }