| st[r -- _type] .type = mkclasstype(class), st[r -- mkfs(class0, ty, fieldvar) '] = refval(r0), (st[r1 -- fs ', byteval(by)][r0 -- sks0]) = st[r0 -- sks0], is_obj(str, r, st), is_bytevalue(st[r1 -- fs ']), fits(r0, sks0, st), mkfs(class0, ty, fieldvar) ' ∈ instfields(class), st[r0 -- _type] .type ≤ ty, r ≠ r1 ∨ mkfs(class0, ty, fieldvar) ≠ fs ⊦ sks0 = [], r = jvmref, (st[r1 -- fs ', byteval(by)][(st[r1 -- fs ', byteval(by)][r -- mkfs(class0, ty, fieldvar) ']) .refval -- sks0]) = st[r0 -- sks0], r0 = jvmref, junkref(str, r0, st) |
⊦ rk ≠ rk0 → (st[rk0, val][rk]) = st[rk]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ r = r0 ∧ sk = sk0], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ ¬ ¬ (r = r0 ∧ sk = sk0)], [CSIMPSEQ : ⊦ fs ' = fs0 ' ↔ fs = fs0], [CSIMPSEQ : ⊦ refval(r) .refval = r])], [EXTRATERMS : (r -- mkfs(class0, ty, fieldvar) ', byteval(by), r1 -- fs ', st)]]