| (fv ' + fis0)[sk0] = refval(r), (fv ' + fis0)[sk] = refval(r), sk0 ∈ fv ' + fis0, sk ∈ fv ' + fis0, ∀ sk0, r, sk. fis0[sk0] = refval(r) ∧ fis0[sk] = refval(r) ∧ sk0 ∈ fis0 ∧ sk ∈ fis0 → sk = sk0 ∨ r = jvmref ∨ dups(fis0 .vals .nonnullrefs) ⊦ sk = sk0, r = jvmref, dups((fv .2 ' + fis0 .vals) .nonnullrefs) |
fv = sk1 × val, (fv ' + fis0)[sk0] = refval(r), (fv ' + fis0)[sk] = refval(r), sk0 ∈ fv ' + fis0, sk ∈ fv ' + fis0, ∀ sk0, r, sk. fis0[sk0] = refval(r) ∧ fis0[sk] = refval(r) ∧ sk0 ∈ fis0 ∧ sk ∈ fis0 → sk = sk0 ∨ r = jvmref ∨ dups(fis0 .vals .nonnullrefs) ⊦ sk = sk0, r = jvmref, dups((val ' + fis0 .vals) .nonnullrefs)
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ sk = fv .1 ∧ val = fv .2 ↔ fv = sk × val])], [EXTRATERMS : (fv, sk1, val)]]