| ((sk1 × val) ' + fis0)[sk0] = refval(r), ((sk1 × val) ' + fis0)[sk] = refval(r), sk0 ∈ (sk1 × val) ' + fis0, sk ∈ (sk1 × val) ' + 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) |
⊦ ¬ is_referencevalue(val) ∨ val .refval = jvmref → (val ' + vals) .nonnullrefs = vals .nonnullrefs
¬ (¬ is_referencevalue(val) ∨ val .refval = jvmref), ((sk1 × val) ' + fis0)[sk0] = refval(r), ((sk1 × val) ' + fis0)[sk] = refval(r), sk0 ∈ (sk1 × val) ' + fis0, sk ∈ (sk1 × val) ' + 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)
¬ is_referencevalue(val) ∨ val .refval = jvmref, ((sk1 × val) ' + fis0)[sk0] = refval(r), ((sk1 × val) ' + fis0)[sk] = refval(r), sk0 ∈ (sk1 × val) ' + fis0, sk ∈ (sk1 × val) ' + 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(fis0 .vals .nonnullrefs)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (fis0 .vals, val)]]