| j1 < n→i(# ints) + j0, j0 < max(ints), max(ints) ≤ j1, j0 < j1, max(ints) < n→i(# ints) + j0, ∀ i. i ∈ ints → j0 < i ∧ i ≤ j1, ∀ ints0, j0, j1. # ints0 < # ints → ¬ dups(ints0) ∧ (∀ i. i ∈ ints0 → j0 < i ∧ i ≤ j1) ∧ ints0 ≠ [] → n→i(# ints0) ≤ j1 - j0 ⊦ #(ints -1l max(ints)) < # ints, ints = [], dups(ints) |
j1 < n→i(# ints) + j0, j0 < max(ints), max(ints) ≤ j1, j0 < j1, max(ints) < n→i(# ints) + j0, # ints ≤ #(ints -1l max(ints)), ∀ i. i ∈ ints → j0 < i ∧ i ≤ j1, ∀ ints0, j0, j1. # ints0 < # ints → ¬ dups(ints0) ∧ (∀ i. i ∈ ints0 → j0 < i ∧ i ≤ j1) ∧ ints0 ≠ [] → n→i(# ints0) ≤ j1 - j0 ⊦ ints = [], dups(ints)
Used simplifier rules: lels: ⊦ ¬ m < n ↔ n ≤ m; from specification nat