【发布时间】:2023-03-08 01:07:01
【问题描述】:
在我的工具中,我使用将常量与整数变量进行比较的条件(例如 y
在代码中:
context c;
goal g(c);
expr x = c.int_const("x");
expr y = c.int_const("y");
solver s(c);
expr F = y < 100 && y != 99;
g.add(F);
tactic t = tactic(c, "simplify");
apply_result r = t(g);
for (unsigned i = 0; i < r.size(); i++) {
std::cout << "subgoal " << i << "\n" << r[i] << "\n";
}
最后输出返回:subgoal 0
(goal
(not (<= 100 y))
(not (= y 99)))
而不是 subgoal 0(goal(not(<= 99 y)) 或我想要的类似的东西。
因此我想实现我自己的简化策略。不幸的是,我找不到如何做到这一点。我知道,该策略需要在 C++ 中实现,但是如何将我的策略引入 Z3?
【问题讨论】: