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