| ty = mkarraytype(ty0), sk .fs = mkfs(class0, ty, fieldvar), is_fskey(sk), is_integervalue(val), sk × val ∈ fis, okarray(st[r -- sk], ty0, val .intval, addclass(class, fis0, st)), is_arraytype(ty), ∀ sk, val. sk × val ∈ fis → is_integervalue(val) ∧ is_fskey(sk) ∧ is_arraytype(sk .fs .type) ∧ okarray(st[r -- sk], sk .fs .type .type, val .intval, addclass(class, fis0, st)) ⊦ r = jvmref, okarray(st[r -- sk], ty0, val .intval, st) |
sk .fs = mkfs(class0, mkarraytype(ty0), fieldvar), is_fskey(sk), is_integervalue(val), sk × val ∈ fis, okarray(st[r -- sk], ty0, val .intval, addclass(class, fis0, st)), ∀ sk, val. sk × val ∈ fis → is_integervalue(val) ∧ is_fskey(sk) ∧ is_arraytype(sk .fs .type) ∧ okarray(st[r -- sk], sk .fs .type .type, val .intval, addclass(class, fis0, st)) ⊦ r = jvmref, okarray(st[r -- sk], ty0, val .intval, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_arraytype(mkarraytype(ty))])]]