| j ^ n→i(# rmdup(i0 ' + ints1)) < i0 ^ (1 + n→i(#oc(i0, ints1))) * Π(ints1 -l i0), 0 < min(i0 ' + ints1), ∀ i. i = i0 ∨ 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 ⊦ |
j ^ n→i(# rmdup(i0 ' + ints1)) < i0 ^ (1 + n→i(#oc(i0, ints1))) * Π(ints1 -l i0), 0 < min(i0 ' + ints1), ∀ i. i = i0 ∨ 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 ⊦ j ^ n→i(# rmdup(ints1 -l i0)) < Π(ints1 -l i0) ∧ (∀ i. i ∈ ints1 -l i0 → 0 < i ∧ i ^ n→i(#oc(i, ints1 -l i0)) ≤ j)
Used simplifier rules: c: ⊦ i + ints = i ' + ints; from specification list[intlista]%len: ⊦ #(ints + ints0) = # ints + # ints0; from specification list[intlista]%len-02: ⊦ # i ' = 0 +1; from specification list[intlista]%a: ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1; from specification list[intlista]%s: ⊦ m < n + 1 ↔ ¬ n < m; from specification nat-basic2%del-length: ⊦ ¬ # ints < #(ints -l i); from specification list-del[intlista]%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2 Used terms: ints1 -l i0, j