| mkfs(class, int_type, fieldvar) ' ∈ statfields(class), tdname∃(str, class), initdone(class, st), validfield(str, jvmref, mkfs(class, int_type, fieldvar) ', st) ⊦ goodfieldandtype(jvmref, mkfs(class, int_type, fieldvar) ', st[jvmref -- mkfs(class, int_type, fieldvar) ', intval(i)]) |
⊦ goodfieldandtype(r, sk, st) ↔ is_fskey(sk) ∧ r -- sk ∈ st ∧ okval(st[r -- sk], sk .fs .type)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_fskey(fs ')], [CSIMPSEQ : ⊦ rk ∈ st[rk0, val] ↔ rk = rk0 ∨ rk ∈ st], [CSIMPSEQ : ⊦ (st[rk, val][rk]) = val], [CSIMPSEQ : ⊦ fs ' .fs = fs], [CSIMPSEQ : ⊦ mkfs(class, ty, fieldvar) .type = ty], [CSIMPSEQ : ⊦ okval(val, int_type) ↔ is_integervalue(val)], [CSIMPSEQ : ⊦ is_integervalue(intval(i))])], [EXTRATERMS : (st[jvmref -- mkfs(class, int_type, fieldvar) ', intval(i)], mkfs(class, int_type, fieldvar) ', jvmref)]]