| ⊦ ¬ dups(fis .keys) → (dups(fis .vals .nonnullrefs) ↔ (∃ r, sk, sk0. sk ≠ sk0 ∧ r ≠ jvmref ∧ fis[sk] = refval(r) ∧ fis[sk0] = refval(r) ∧ sk ∈ fis ∧ sk0 ∈ fis)) |
⊦ fis[sk] = refval(r) ∧ fis[sk0] = refval(r) ∧ sk ≠ sk0 ∧ sk ∈ fis ∧ sk0 ∈ fis ∧ r ≠ jvmref → dups(fis .vals .nonnullrefs)
dups(fis .vals .nonnullrefs) ⊦ dups(fis .keys), ∃ r, sk, sk0. sk ≠ sk0 ∧ r ≠ jvmref ∧ fis[sk] = refval(r) ∧ fis[sk0] = refval(r) ∧ sk ∈ fis ∧ sk0 ∈ fis
[[CONCRETESIMPRULES : ()]]