| A[m1] = a, A[m0] = a, A[m] = a, m0 < i, m < i, m1 < i, i ≤ # A ⊦ m = m1, m = m0, m0 = m1, count(a, mkbag(A, i)) > 2 |
A[m0] = A[m], A[m1] = A[m], m1 < i, m < i, m0 < i, m1 < # A, m < # A, m0 < # A, i ≤ # A, count(A[m], mkbag(A, i)) ≤ 2 ⊦ m = m0, m = m1, m0 = m1
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m > n ↔ n < m; (s)