我正在使用嵌套量词(Forall,Exists),并且想知道外部量词级别的变量是否可以在内部量词级别中访问。例如,在下面的代码中,变量“pack”在整个约束中是否具有相同的值?换句话说,在使用“pack”时的Exists量词级别中,它与暗示的前半部分中的“pack”具有相同的值。
如果没有,我如何指定它们都引用相同的变量或值?
s.add(Implies(constraint17a,
ForAll((t,p,pack),
Implies(And(knows(t+1,p,pack)==True,knows(t,p,pack)==False,pack>0,p>0,t>=0,p<=2,t<=16,pack<=2),#if process p knows a packet now and did not know it in previous step
And(listen(t,p)==True, #then p listened in the previous step,
Exists(q,And(q<p,q>=0,q<=2,transmit(t,q)==pack)), #another process q transmitted that packet in the previous step
ForAll(q1,Implies(And(not(q1==p),not(q1==q),q1>=0,q1<=2),transmit(t,q1)==-1)) #and no other process q1 except q was transmitting in previous step
)
)
)
)
)