Z3Py代码中出现错误

Z3Py代码中出现错误,z3,z3py,Z3,Z3py,下面的脚本有什么问题? 添加最后两行会导致以下错误“instancemethod”对象不可订阅 x,t,t1,t2,x_next=Reals ('x t t1 t2 x_next') location,location_next=Bools('location location_next') x=0 location=BoolVal(False) k=20 for i in range(k): s=Solver() s.add(Or(And(x_next-x>=2*t,x_next-x

下面的脚本有什么问题? 添加最后两行会导致以下错误
“instancemethod”对象不可订阅

x,t,t1,t2,x_next=Reals ('x t t1 t2 x_next')
location,location_next=Bools('location location_next')
x=0
location=BoolVal(False)
k=20
for i in range(k):
 s=Solver()
 s.add(Or(And(x_next-x>=2*t,x_next-x<=3*t,x_next<=12,t>0,Not(location)),
         And(x_next-x>=-2*t,x_next-x<=-t,x_next>=0,t>0,location)),location_next==If(And(Not(location),x_next>=12),True,If(And(location,x_next<=0),False,location)))

print s.check()
print s.model()
m=s.model
#x=m[x_next]
#location=m[location_next]
x,t,t1,t2,x_next=Reals('x t t1 t2 x_next')
位置,位置\u下一步=布尔值('位置\u下一步')
x=0
位置=布尔瓦尔(假)
k=20
对于范围(k)内的i:
s=解算器()

s、 add(Or)(And(And(x_next-x>=2*t,x_next-x=-2*t,x_next-x=0,t>0,location)),location_next==If(And(Not(location),x_next>=12),True,If(And(location,x_next
m=s.model
将函数分配给
m
。我相信您的意思是分配调用
s.model
的结果,所以在调用时要包括括号:

m=s.model()

@莱昂纳多·德莫拉:谢谢你的排错。