| 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) ⊦ i→n(j - 1) < i→n(j), ints = [], dups(ints) |
∀ i. ¬ i ∈ 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%anti: ⊦ i ≤ j → (j ≤ i ↔ i = j); from specification int-abs%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%abs-pred: ⊦ i→n(i - 1) < i→n(i) ↔ 0 < i; from specification intnat