| st[r -- _type] = typeval(mkclasstype(class)), sk ∈ instfields(class), r -- mkfs(class0, ty, fieldvar) ' ∈ st, okval(st[r -- mkfs(class0, ty, fieldvar) '], ty), okval(val, ty), r ∈ st, r -- _type ∈ st, is_indexkey(sk) ∨ ¬ r -- sk ∈ st ∨ ¬ okval(st[r -- sk], sk .fs .type), ∀ sk0. sk0 ∈ instfields(class) → is_fskey(sk0) ∧ r -- sk0 ∈ st[r -- mkfs(class0, ty, fieldvar) ', val] ∧ okval(st[r -- mkfs(class0, ty, fieldvar) ', val][r -- sk0], sk0 .fs .type) ⊦ mkfs(class0, ty, fieldvar) ' = _type, r = jvmref |
st[r -- _type] = typeval(mkclasstype(class)), sk ∈ instfields(class), r -- mkfs(class0, ty, fieldvar) ' ∈ st, okval(st[r -- mkfs(class0, ty, fieldvar) '], ty), okval(val, ty), r ∈ st, r -- _type ∈ st, is_indexkey(sk) ∨ ¬ r -- sk ∈ st ∨ ¬ okval(st[r -- sk], sk .fs .type), sk ∈ instfields(class) → is_fskey(sk) ∧ r -- sk ∈ st[r -- mkfs(class0, ty, fieldvar) ', val] ∧ okval(st[r -- mkfs(class0, ty, fieldvar) ', val][r -- sk], sk .fs .type), ∀ sk0. sk0 ∈ instfields(class) → is_fskey(sk0) ∧ r -- sk0 ∈ st[r -- mkfs(class0, ty, fieldvar) ', val] ∧ okval(st[r -- mkfs(class0, ty, fieldvar) ', val][r -- sk0], sk0 .fs .type) ⊦ mkfs(class0, ty, fieldvar) ' = _type, r = jvmref
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (sk)]]