| (∀ i. i ∈ ints → 0 ≤ i ∧ i < j) ∧ 0 ≤ j ∧ j < n→i(# ints), ∀ j0, ints. i→n(j0) < i→n(j) → (∀ i. i ∈ ints → 0 ≤ i ∧ i < j0) ∧ 0 ≤ j0 ∧ j0 < n→i(# ints) → dups(ints) ⊦ dups(ints) |
0 ≤ j, j < n→i(# ints), ∀ 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)
Used simplifier rules: 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%forward-le-01: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward) from specification int-abs%forward-le-05: ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward) from specification int-abs