从Z3中的实例获取Integer值

时间:2018-04-08 13:56:04

标签: casting z3 sat

我的代码是

def test():
    s = Solver()
    a = Int('x')
    b = Int('y')
    s.add(a*b==22)
    print s.check()
    return s.model()[a], s.model()[b]

这会打印数字,但是当您看到type(s.model()[a])type(s.model()[b])时,它会显示<type 'instance'>。如何以某种方式投放它<type 'int'>?我不能将返回类型更多地用于我的代码,因为它返回实例,即使你print s.model()[a]看起来像整数但是它不是。

1 个答案:

答案 0 :(得分:0)

只需使用as_long方法即可。也就是说,用以下函数替换函数中的最后一行:

   return s.model()[a].as_long(), s.model()[b].as_long()