| 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) ⊦ (∀ i0. i0 ∈ ints -1l i → 0 ≤ i0 ∧ i0 < i) ∧ 0 ≤ i ∧ i < n→i(#(ints -1l i)), ints = [], # ints = 1, ~1 = i, dups(ints) |
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)
Used simplifier rules: pred-03: ⊦ n -1 = n - 1; from specification nat%l: ⊦ i ∈ ints → #(ints -1l i) = (# ints)-1; from specification list-del[intlista]%zero-gels-04: ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j; from specification int-abs