| st[r -- sk0] = st[r -- sk], st[r -- _type] .type = mkclasstype(class), is_referencevalue(st[r -- sk]), sk ∈ instfields(class), sk0 ∈ instfields(class) ⊦ r = jvmref, sk0 = sk, st[r -- sk] .refval = jvmref, fits(r, sk ', st) ∧ fits(r, sk0 ', st) |
st[r -- sk] = refval(r0), st[r -- sk0] = st[r -- sk], st[r -- _type] .type = mkclasstype(class), is_referencevalue(st[r -- sk]), sk ∈ instfields(class), sk0 ∈ instfields(class) ⊦ r = jvmref, sk0 = sk, r0 = jvmref, fits(r, sk ', st) ∧ fits(r, sk0 ', st)
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ is_referencevalue(val) → ( r = val .refval ↔ val = refval(r))])], [EXTRATERMS : (st[r -- sk], r0)]]