Z3在执行期间添加新变量
我正在尝试向Z3添加一个新功能。 此功能要求我在执行期间和预处理之后添加新的松弛变量。 我找不到一个合适的方法来解决这个问题,我担心试图通过添加一个新的列来强制它会“破坏”解算器 有没有一种常见的推荐方法 谢谢,Z3在执行期间添加新变量,z3,Z3,我正在尝试向Z3添加一个新功能。 此功能要求我在执行期间和预处理之后添加新的松弛变量。 我找不到一个合适的方法来解决这个问题,我担心试图通过添加一个新的列来强制它会“破坏”解算器 有没有一种常见的推荐方法 谢谢, Omer您可以在文件src/smt/theory\u arith\u int.h中找到一个示例,方法:mk\u gomory\u cut。 在该方法的最后,将创建一个新的多项式约束,并将其存储在变量bound中。然后,使用以下代码“内部化”约束: literal l =
Omer您可以在文件
src/smt/theory\u arith\u int.h
中找到一个示例,方法:mk\u gomory\u cut
。
在该方法的最后,将创建一个新的多项式约束,并将其存储在变量bound
中。然后,使用以下代码“内部化”约束:
literal l = null_literal;
context & ctx = get_context();
ctx.internalize(bound, true);
l = ctx.get_literal(bound);
方法内部化
将回调理论,并创建一个新的松弛。
备注:internalize
方法假定bound
中存储的多项式约束为简化形式