有没有办法在Z3中获取默认上下文?

时间:2013-05-11 02:54:28

标签: z3 z3py

我正在使用z3py API(4.3.0)。我可以使用expr轻松地将表达式target_ctx从默认上下文转换为新的上下文expr.translate(target_ctx)。但是,如何从给定的上下文ctx转换为默认的Z3上下文?有没有办法从Python API获取默认的Context

1 个答案:

答案 0 :(得分:2)

可以通过main_ctx()访问它。

以下是描述main_ctxhttp://research.microsoft.com/en-us/um/redmond/projects/z3/z3.html#-main_ctx

的Python API

另一种方法是使用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