| onlyModified(r, st, st0), ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∧ _uninit ∈ st ∨ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∧ st[jvmref -- mkfs(class, void_type, `initstate' .field) '] = initval(undone), ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st0 ∨ st0[jvmref -- mkfs(class, void_type, `initstate' .field) '] ≠ initval(undone) ⊦ r = jvmref, ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st0 ∧ _uninit ∈ st0 |
⊦ onlyModified(r, st1, st2) ↔ (∀ rk. rk ∈ st1 ↔ rk ∈ st2) ∧ (∀ r0, sk. r0 ≠ r → st1[r0 -- sk] = st2[r0 -- sk]) ∧ (r -- _type ∈ st1 → st1[r -- _type] = st2[r -- _type]) ∧ (r -- _length ∈ st1 → st1[r -- _length] = st2[r -- _length])
(∀ rk. rk ∈ st ↔ rk ∈ st0) ∧ (∀ r0, sk. r0 ≠ r → st[r0 -- sk] = st0[r0 -- sk]) ∧ (r -- _type ∈ st → st[r -- _type] = st0[r -- _type]) ∧ (r -- _length ∈ st → st[r -- _length] = st0[r -- _length]), ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∧ _uninit ∈ st ∨ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st ∧ st[jvmref -- mkfs(class, void_type, `initstate' .field) '] = initval(undone), ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st0 ∨ st0[jvmref -- mkfs(class, void_type, `initstate' .field) '] ≠ initval(undone) ⊦ r = jvmref, ¬ jvmref -- mkfs(class, void_type, `initstate' .field) ' ∈ st0 ∧ _uninit ∈ st0
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st0, st, r)]]