| j = 0, j ≤ n→i(# ints), j < n→i(# ints), 0 ≤ j, ∀ i. i ∈ ints → 0 ≤ i ∧ i < j, ∀ j0, ints. i→n(j0) < i→n(j) → (∀ i. i ∈ ints → 0 ≤ i ∧ i < j0) ∧ 0 ≤ j0 ∧ j0 < n→i(# ints) → dups(ints) ⊦ ints = [], dups(ints), 0 < j ∧ (i ∈ ints → 0 ≤ i ∧ i + 1 < j) |
∀ i0. ¬ i0 ∈ ints, ∀ j0, ints. i→n(j0) < i→n(0) → (∀ i. i ∈ ints → 0 ≤ i ∧ i < j0) ∧ 0 ≤ j0 ∧ j0 < n→i(# ints) → dups(ints) ⊦ ints = [], dups(ints)
Used simplifier rules: lels-03: ⊦ i < j → (¬ ¬ j ≤ i ↔ false); from specification int-abs%l: ⊦ # ints = 0 ↔ ints = []; from specification list-data[intlista]%zero: ⊦ 0 < m ↔ m ≠ 0; from specification nat-basic1%num-n2i-ls-02: 0 ≤ i ⊦ (* i) < n→i(n) ↔ i→n(i) < n; from specification intnat%nat2int: ⊦ 0 ≤ n→i(n); from specification intnat