| j ^ n→i(# rmdup(i0 ' + ints1)) < j ^ (n→i(# rmdup(ints1 -l i0)) + 1), j ^ n→i(# rmdup(i0 ' + ints1)) < i0 ^ (1 + n→i(#oc(i0, ints1))) * Π(ints1 -l i0), 0 < min(i0 ' + ints1), i0 ^ (1 + n→i(#oc(i0, ints1))) ≤ j, 0 < i0, Π(ints1 -l i0) ≤ j ^ n→i(# rmdup(ints1 -l i0)), i ∈ ints1 → 0 < i ∧ i ^ (n→i(#oc(i, i0 ')) + n→i(#oc(i, ints1))) ≤ j, ∀ i. i ∈ ints1 → 0 < i ∧ i ^ (n→i(#oc(i, i0 ')) + n→i(#oc(i, ints1))) ≤ j, ∀ ints0, j. # ints0 < #(i0 + ints1) → j ^ n→i(# rmdup(ints0)) < Π ints0 ∧ (∀ i. i ∈ ints0 → 0 < i ∧ i ^ n→i(#oc(i, ints0)) ≤ j) → false ⊦ |
⊦ 1 < i ∧ 0 ≤ j → (i ^ j < i ^ j0 ↔ j < j0)
¬(1 < j ∧ 0 ≤ n→i(# rmdup(i0 ' + ints1))), j ^ n→i(# rmdup(i0 ' + ints1)) < j ^ (n→i(# rmdup(ints1 -l i0)) + 1), j ^ n→i(# rmdup(i0 ' + ints1)) < i0 ^ (1 + n→i(#oc(i0, ints1))) * Π(ints1 -l i0), 0 < min(i0 ' + ints1), i0 ^ (1 + n→i(#oc(i0, ints1))) ≤ j, 0 < i0, Π(ints1 -l i0) ≤ j ^ n→i(# rmdup(ints1 -l i0)), i ∈ ints1 → 0 < i ∧ i ^ (n→i(#oc(i, i0 ')) + n→i(#oc(i, ints1))) ≤ j, ∀ i. i ∈ ints1 → 0 < i ∧ i ^ (n→i(#oc(i, i0 ')) + n→i(#oc(i, ints1))) ≤ j, ∀ ints0, j. # ints0 < #(i0 + ints1) → j ^ n→i(# rmdup(ints0)) < Π ints0 ∧ (∀ i. i ∈ ints0 → 0 < i ∧ i ^ n→i(#oc(i, ints0)) ≤ j) → false ⊦
Used simplifier rules: nat2int: ⊦ 0 ≤ n→i(n); from specification intnat%succ-02: ⊦ i < j + 1 ↔ i ≤ j; from specification int-abs%le: ⊦ n→i(m) ≤ n→i(n) ↔ m ≤ n; from specification intnat%del-rmdup-length-nle: ⊦ ¬ # rmdup(i ' + ints) ≤ # rmdup(ints -l i); from specification list-del[intlista]%a: ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1; from specification list[intlista]%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2 Used terms: n→i(# rmdup(ints1 -l i0)) + 1, n→i(# rmdup(i0 ' + ints1)), j