在C ++中是否有类似Z3py接口的as_expr()。我试图将战术应用为z3表达式 exp ,而不是类型 apply_result 。
例如,在下面的代码中
context c;
expr x = c.bool_const("x");
expr y = c.bool_const("y");
expr f = ( (x || y) && (x && y) );
solver s(c);
goal g(c);
g.add( f );
tactic t1(c, "simplify");
apply_result r = t1(g);
std::cout << r << "\n";
另外,有没有办法将apply_result转换为z3 expr?
答案 0 :(得分:1)
通常,战术应用程序的结果是设置目标。大多数策略只产生一个目标,但有些产生不止一个目标。对于每个子目标,您可以使用as_expr()
然后使用逻辑 - 或它们。如果有帮助,我们可以向as_expr(...)
添加class apply_result
。 (我现在忙于其他事情;如果你自己添加,提交拉取请求,非常欢迎贡献!)