| dups(vals0 .nonnullrefs) ↔ (∃ r, m, n. vals0[m] = refval(r) ∧ vals0[n] = refval(r) ∧ r ≠ jvmref ∧ m ≠ n ∧ ¬ # vals0 ≤ m ∧ ¬ # vals0 ≤ n) ⊦ dups((val + vals0) .nonnullrefs) ↔ (∃ r, m, n. (val + vals0)[m] = refval(r) ∧ (val + vals0)[n] = refval(r) ∧ r ≠ jvmref ∧ m ≠ n ∧ ¬ # (val + vals0) ≤ m ∧ ¬ # (val + vals0) ≤ n) |
dups(vals0 .nonnullrefs) ↔ (∃ r, m, n. vals0[m] = refval(r) ∧ vals0[n] = refval(r) ∧ r ≠ jvmref ∧ m ≠ n ∧ m < # vals0 ∧ n < # vals0) ⊦ dups((val ' + vals0) .nonnullrefs) ↔ (∃ r, m, n. (val ' + vals0)[m] = refval(r) ∧ (val ' + vals0)[n] = refval(r) ∧ r ≠ jvmref ∧ m ≠ n ∧ ¬ # vals0 < m ∧ ¬ # vals0 < n)
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : nat-basic2, , c, ⊦ m + n = n + m], [CSIMPNAMEDSEQ : nat-basic2, , a, ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPNAMEDSEQ : nat, , succ-01, ⊦ m + 1 ≤ n ↔ m < n], [CSIMPNAMEDSEQ : list, javavalues, a, ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPNAMEDSEQ : list, javavalues, len-02, ⊦ # val ' = 0 +1], [CSIMPNAMEDSEQ : list, javavalues, len, ⊦ # (vals + vals0) = # vals + # vals0], [CSIMPNAMEDSEQ : list, javavalues, c, ⊦ val + vals = val ' + vals], [CSIMPNAMEDSEQ : nat, , lels-01, ⊦ ¬ m ≤ n ↔ n < m])]]