| ∀ str, r, ty, class, st. validref(str, r, ty, addclass(class, fis0, st)) ↔ validref(str, r, ty, st) ⊦ validref(str, r, ty, addclass(class, fis0, st)[jvmref -- mkfs(class, ty0, fieldvar) ', val]) ↔ validref(str, r, ty, st) |
⊦ rk1 .ref = jvmref ∧ r ≠ jvmref → (validref(str, r, ty1, st[rk1, val]) ↔ validref(str, r, ty1, st))
⊦ validref(str, jvmref, ty, st)
(jvmref -- mkfs(class, ty0, fieldvar) ') .ref = jvmref ∧ r ≠ jvmref, ∀ str, r, ty, class, st. validref(str, r, ty, addclass(class, fis0, st)) ↔ validref(str, r, ty, st) ⊦ validref(str, r, ty, addclass(class, fis0, st)) ↔ validref(str, r, ty, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (addclass(class1, fis, st) [ jvmref -- mkfs(class1, ty, fieldvar) ', val ] ) = addclass (class1, fis[mkfs(class1, ty, fieldvar) ', val], st)], [CSIMPSEQ : ⊦ (r -- sk) .ref = r])], [EXTRATERMS : (val, jvmref -- mkfs(class, ty0, fieldvar) ', addclass(class, fis0, st), ty, r, str)]]