我正在使用z3py API(4.3.0)。我可以使用expr
轻松地将表达式target_ctx
从默认上下文转换为新的上下文expr.translate(target_ctx)
。但是,如何从给定的上下文ctx
转换为默认的Z3上下文?有没有办法从Python API获取默认的Context
?
答案 0 :(得分:2)
可以通过main_ctx()
访问它。
以下是描述main_ctx
:http://research.microsoft.com/en-us/um/redmond/projects/z3/z3.html#-main_ctx
另一种方法是使用object.ctx
来自任何创建的对象,而不引用特定的上下文(默认使用全局上下文main_ctx()
)。
以下是描述Context
的Python API,其中讨论了以下内容:http://research.microsoft.com/en-us/um/redmond/projects/z3/z3.html#Context
以下是显示这些方法的示例(z3py link:http://rise4fun.com/Z3Py/1sN):
x, y = Reals('x y')
print x.ctx == y.ctx # True
ctx_default = x.ctx
print x.ctx == main_ctx() # True
ctx1 = Context()
x1, y1 = Reals('x1 y1', ctx1)
print ctx_default == x1.ctx # False