Optimization Z3 opt分支中的opt上下文

Optimization Z3 opt分支中的opt上下文,optimization,z3,Optimization,Z3,关于使用Z3 opt分支的优化特性,我有一个相当具体的问题 也就是说,我可以使用z3\u optimize\u assert将断言添加到“opt”上下文中,这些约束确实有效。 但是,将忽略添加到原始z3_上下文(用于创建优化上下文)中的所有约束。 它是一个bug还是一个特性?拥有两个上下文的目的是什么?唯一向上下文添加约束的函数称为Z3\u assert\u cnstr。 这是一个不推荐使用的函数。您应该对要使用的引擎声明约束。 现在有以下发动机: Z3_solver_assert Z3_f

关于使用Z3 opt分支的优化特性,我有一个相当具体的问题

也就是说,我可以使用
z3\u optimize\u assert
将断言添加到“opt”上下文中,这些约束确实有效。 但是,将忽略添加到原始
z3_上下文
(用于创建优化上下文)中的所有约束。
它是一个bug还是一个特性?拥有两个上下文的目的是什么?

唯一向上下文添加约束的函数称为Z3\u assert\u cnstr。 这是一个不推荐使用的函数。您应该对要使用的引擎声明约束。 现在有以下发动机:

 Z3_solver_assert
 Z3_fixedpoint_assert
 Z3_optimzie_assert
 Z3_goal_assert
断言分别位于解算器、定点上下文、优化上下文或目标的本地