| 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) ⊦ j = 0, ints = [], dups(ints), 0 < j ∧ (i ∈ ints → 0 ≤ i ∧ i + 1 < j) |
i ∈ ints, 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 = [], j = 0, # ints = 1, dups(ints), 0 ≤ i ∧ i + 1 < j
Used simplifier rules: one: ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1); from specification nat-basic1%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-pos: ⊦ i < j ∧ 0 < i → 0 < j ∧ 1 < j; (forward) from specification int-basic1%forward-le-05: ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward) from specification int-abs%lels-02: ⊦ i ≠ j → (i ≤ j ↔ i < j); from specification int-abs