| i + 1 < n→i(# ints), i ∈ ints, 0 ≤ i, i < n→i(# ints), ∀ i0. i0 ∈ ints → 0 ≤ i0 ∧ i0 ≤ i, ∀ j0, ints. i→n(j0) < i→n(i + 1) → (∀ i. i ∈ ints → 0 ≤ i ∧ i < j0) ∧ 0 ≤ j0 ∧ j0 < n→i(# ints) → dups(ints) ⊦ ints = [], # ints = 1, ~1 = i, dups(ints), (i0 ∈ ints -1l i → 0 ≤ i0 ∧ i0 < i) ∧ i < n→i(# ints - 1) |
# ints = m + 1 ∧ # ints ≠ 0, i + 1 < n→i(# ints), i ∈ ints, 0 ≤ i, i < n→i(# ints), ∀ i0. i0 ∈ ints → 0 ≤ i0 ∧ i0 ≤ i, ∀ j0, ints. i→n(j0) < i→n(i + 1) → (∀ i. i ∈ ints → 0 ≤ i ∧ i < j0) ∧ 0 ≤ j0 ∧ j0 < n→i(# ints) → dups(ints) ⊦ ints = [], # ints = 1, ~1 = i, dups(ints), (i0 ∈ ints -1l i → 0 ≤ i0 ∧ i0 < i) ∧ i < n→i(m)
Used simplifier rules: l: ⊦ # ints = 0 ↔ ints = []; from specification list-data[intlista]%n ≠ 0 ⊦ m = n - 1 ↔ n = m + 1; (elim) Used terms: # ints, m