| r0 ∈ vals0 .nonnullrefs ∨ dups(vals0 .nonnullrefs), dups(vals0 .nonnullrefs) ↔ (∃ r, m, n. vals0[m] = refval(r) ∧ vals0[n] = refval(r) ∧ r ≠ jvmref ∧ m ≠ n ∧ m < # vals0 ∧ n < # vals0) ⊦ ∃ r, m, n. (refval(r0) ' + vals0)[m] = refval(r) ∧ (refval(r0) ' + vals0)[n] = refval(r) ∧ r ≠ jvmref ∧ m ≠ n ∧ ¬ # vals0 < m ∧ ¬ # vals0 < n, r0 = jvmref |
dups(vals0 .nonnullrefs), r0 ∈ vals0 .nonnullrefs ∨ dups(vals0 .nonnullrefs), dups(vals0 .nonnullrefs) ↔ (∃ r, m, n. vals0[m] = refval(r) ∧ vals0[n] = refval(r) ∧ r ≠ jvmref ∧ m ≠ n ∧ m < # vals0 ∧ n < # vals0) ⊦ ∃ r, m, n. (refval(r0) ' + vals0)[m] = refval(r) ∧ (refval(r0) ' + vals0)[n] = refval(r) ∧ r ≠ jvmref ∧ m ≠ n ∧ ¬ # vals0 < m ∧ ¬ # vals0 < n, r0 = jvmref
r0 ∈ vals0 .nonnullrefs ∨ dups(vals0 .nonnullrefs), dups(vals0 .nonnullrefs) ↔ (∃ r, m, n. vals0[m] = refval(r) ∧ vals0[n] = refval(r) ∧ r ≠ jvmref ∧ m ≠ n ∧ m < # vals0 ∧ n < # vals0) ⊦ dups(vals0 .nonnullrefs), ∃ r, m, n. (refval(r0) ' + vals0)[m] = refval(r) ∧ (refval(r0) ' + vals0)[n] = refval(r) ∧ r ≠ jvmref ∧ m ≠ n ∧ ¬ # vals0 < m ∧ ¬ # vals0 < n, r0 = jvmref
[[CONCRETESIMPRULES : ()], [EXTRAFMAS : (dups(vals0 .nonnullrefs))]]