| fis .keys = instfields(class), fis[sk0] = refval(r0), fis[sk] = refval(r0), sk0 ∈ fis, sk ∈ fis, newref(r, st), validfieldinits(str, fis, st) ⊦ r = jvmref, r0 = jvmref, sk0 = sk, junkref(str, r, addobj(r, class, fis, st)), dups(instfields(class)), fits(r, sk ', addobj(r, class, fis, st)) ∧ fits(r, sk0 ', addobj(r, class, fis, st)) ∧ sk ' ≠ sk0 ' ∧ (addobj(r, class, fis, st)[r -- sk ']) .refval ≠ jvmref ∧ (addobj(r, class, fis, st)[r -- sk ']) = (addobj(r, class, fis, st)[r -- sk0 ']) |
fis[sk] = refval(r0), fis[sk0] = refval(r0), fis .keys = instfields(class), validfieldinits(str, fis, st), newref(r, st), sk ∈ fis, sk0 ∈ fis ⊦ sk0 = sk, r0 = jvmref, r = jvmref, dups(instfields(class)), junkref(str, r, addobj(r, class, fis, st)), fits(r, sk ', addobj(r, class, fis, st)) ∧ fits(r, sk0 ', addobj(r, class, fis, st))
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : javavalue, , sel-09, ⊦ refval(r) .refval = r], [CSIMPNAMEDSEQ : addfuns, , add-in-09, ⊦ sk ∈ fis → (addobj(r, class, fis, st) [r -- sk ] ) = fis[sk]], [CSIMPNAMEDSEQ : storefuns, , lookup-one, ⊦ st[r -- sk '] = st[r -- sk]], [CSIMPNAMEDSEQ : list, storekeys, c-04, ⊦ sk ' = sk0 ' ↔ sk = sk0])]]