我想对 z3::expr 对象进行一些转换。如何使用Z3_substitute_vars
,Z3_translate
和Z3_substitute_
C++ API?它们是用 C# 实现的,但我在 C++ 中找不到它们。很奇怪,它们没有被执行。
我尝试使用 C api 但没有任何结果,这里有一个例子:
void substitute(){
z3::context c;
z3::expr a = c.int_const("a");
Z3_ast astA = a;
z3::expr plus = 2*a;
errs() << Z3_ast_to_string(c,plus);
z3::expr b = c.int_const("b");
Z3_ast astB = a;
z3::expr subs(c,Z3_substitute(c,plus,1,&astA,&astB));
errs() << Z3_ast_to_string(c,subs);
}
但a
不会被替代。难道我做错了什么?