datatype MSG_CMD = Empty| ReqS| ReqE| Inv| InvAck| GntS| GntE
type NODE=nat
type DATA=nat
type boolean=bool
class class_0 {
var
Data : DATA,
Cmd : MSG_CMD
}
class class_1 {
var
Data : DATA,
State : CACHE_STATE
}
class TopC{
var Cache : array<class_1 > }
predicate inv__1(top:TopC,N1:nat,p__Inv0:nat, p__Inv2:nat)
reads top
reads top.Cache[p__Inv0]
eads top.Cache[p__Inv2]
requires top.Cache.Length ==N1
requires N1>0
requires top.Cache.Length ==N1
requires N1>0
requires 0<= p__Inv0<N1
requires 0<= p__Inv2<N1
{
(!((top.Cache[p__Inv2].State == E) && (!(top.Cache[p__Inv0].State == I))))
}
Это мой тестовый код, когда я его компилирую, нахожу ошибку: недостаточное предложение чтения для чтения элемента массива в строке «reads top.Cache[p__Inv0]», я не понимаю, где я ошибаюсь, может ли аннотация чтения не использоваться в элементе массива?