| sk .fs = mkfs(class0, ty, fieldvar), sk × val ∈ fis, ∀ sk0, val0. sk0 × val0 ∈ fis → is_integervalue(val0) ∧ is_fskey(sk0) ∧ is_arraytype(sk0 .fs .type) ∧ okarray(st[r -- sk0], sk0 .fs .type .type, val0 .intval, st) ⊦ r = jvmref, is_integervalue(val) ∧ ¬ is_indexkey(sk) ∧ is_arraytype(ty) ∧ okarray(st[r -- sk], ty .type, val .intval, addclass(class, fis0, st)) |
⊦ val ≠ refval(jvmref) → (okarray(val, ty, i, addclass(class, fis, st)) ↔ okarray(val, ty, i, st))
¬ st[r -- sk] ≠ refval(jvmref), sk .fs = mkfs(class0, ty, fieldvar), sk × val ∈ fis, ∀ sk0, val0. sk0 × val0 ∈ fis → is_integervalue(val0) ∧ is_fskey(sk0) ∧ is_arraytype(sk0 .fs .type) ∧ okarray(st[r -- sk0], sk0 .fs .type .type, val0 .intval, st) ⊦ r = jvmref, is_integervalue(val) ∧ ¬ is_indexkey(sk) ∧ is_arraytype(ty) ∧ okarray(st[r -- sk], ty .type, val .intval, addclass(class, fis0, st))
st[r -- sk] ≠ refval(jvmref), sk .fs = mkfs(class0, ty, fieldvar), sk × val ∈ fis, ∀ sk0, val0. sk0 × val0 ∈ fis → is_integervalue(val0) ∧ is_fskey(sk0) ∧ is_arraytype(sk0 .fs .type) ∧ okarray(st[r -- sk0], sk0 .fs .type .type, val0 .intval, st) ⊦ r = jvmref, is_integervalue(val) ∧ ¬ is_indexkey(sk) ∧ is_arraytype(ty) ∧ okarray(st[r -- sk], ty .type, val .intval, st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, fis0, class, val .intval, ty .type, st[r -- sk])]]