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