| st[r -- sk] = refval(r0), st[r -- _type] .type = mkclasstype(class), sk ∈ instfields(class), okbytearray(r0, st) ⊦ r = jvmref, r = r0, onlyModified(str, r, st, putByteArray(bytes, r0, st)), junkref(str, r, st) |
⊦ onlyModified(str, r, st, st0) ↔ (∀ r0, sk. ¬ path∃(str, r, r0, st) → st[r0 -- sk] = st0[r0 -- sk])
st[r -- sk] = refval(r0), st[r -- _type] .type = mkclasstype(class), sk ∈ instfields(class), okbytearray(r0, st) ⊦ r = jvmref, r = r0, ∀ r1, sk. ¬ path∃(str, r, r1, st) → st[r1 -- sk] = (putByteArray(bytes, r0, st)[r1 -- sk]), junkref(str, r, st)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (putByteArray(bytes, r0, st), st, r, str)]]