Z3检查两个表达式是否相同

时间:2014-09-26 23:01:57

标签: z3

在我的代码中添加约束时,我发现我必须多次将相同的约束添加到表达式向量中。是否有任何API来检测两个表达式是否完全相同,以便我可以删除多余的表达式?

1 个答案:

答案 0 :(得分:0)

表达式始终内部化为唯一指针。因此,如果使用相同的子表达式构建两个表达式,则指向它们的指针将是相同的。你可以简单地使用指针相等。

表达式也有所谓的"标识符"。对get标识符的C调用称为Z3_ast_get_id,其他API中的其他编程语言也有相应的调用 (从C ++开始,你仍然需要使用Z3_ast_get_id,来自C#和Java,它被称为" Id" /" id")。