| ¬ (¬ is_referencevalue(val) ∨ val .refval = jvmref), dups(val ' .nonnullrefs + fis0 .vals .nonnullrefs), dups(fis0 .vals .nonnullrefs) → sk ≠ sk0 ∧ r ≠ jvmref ∧ fis0[sk] = refval(r) ∧ fis0[sk0] = refval(r) ∧ sk ∈ fis0 ∧ sk0 ∈ fis0 ⊦ 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) |
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)
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : list, references, a, ⊦ (refs + refs0) + refs1 = refs + refs0 + refs1], [CSIMPNAMEDSEQ : list-dup, references, rec, ⊦ dups(r ' + refs) ↔ ¬ ¬ (r ∈ refs ∨ dups(refs))], [CSIMPNAMEDSEQ : valuesfuns, , nonnullrefs-one-yes, ⊦ is_referencevalue(val) ∧ val .refval ≠ jvmref → val ' .nonnullrefs = val .refval '])]]