| sk .fs = mkfs(class, ty0, fieldvar), st[r0 -- _type] .type = mkarraytype(void_type), validref(str, r, ty, st), validvals(str, rkvs0, st), is_indexkey(sk), ∀ str, r, ty, st. validref(str, r, ty, st) ∧ validvals(str, rkvs0, st) → validref(str, r, ty, st[rkvs0]) ⊦ r0 = jvmref, validref(str, r, ty, st[r0 -- sk, refval(jvmref)]), validref(str, r, ty, st[r0 -- sk, refval(jvmref)][rkvs0]) |
⊦ is_indexkey(sk) ↔ (∃ i. sk = i ')
sk .fs = mkfs(class, ty0, fieldvar), st[r0 -- _type] .type = mkarraytype(void_type), validref(str, r, ty, st), validvals(str, rkvs0, st), ∃ i. sk = i ', ∀ str, r, ty, st. validref(str, r, ty, st) ∧ validvals(str, rkvs0, st) → validref(str, r, ty, st[rkvs0]) ⊦ r0 = jvmref, validref(str, r, ty, st[r0 -- sk, refval(jvmref)]), validref(str, r, ty, st[r0 -- sk, refval(jvmref)][rkvs0])
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (sk)]]