| m0 < n, m0 < # zbrar, m0 + 1 < nused, m < # zbrar, m + 1 < # zbrar, m0 < m, m < nused, n < # zbrar, nused < # zbrar, m0 < nused, 2 + m0 < # zbrar, m0 + 1 < # zbrar, sorted(zbrar, 0, nused + 1), n ≤ nused ⊦ zbrar[m0].key < zbrar[m + 1].key, m < n |
m0 + 1 < # zbrar, 2 + m0 < # zbrar, m0 < nused, nused < # zbrar, n < # zbrar, m < nused, m + 1 < # zbrar, m < # zbrar, m0 + 1 < nused, m0 < # zbrar, m0 < n, m0 < m, n < nused, n + 1 < # zbrar, sorted(zbrar, 0, nused + 1), n ≤ m ⊦ zbrar[m0].key < zbrar[m + 1].key
Used simplifier rules: ⊦ m +1 = m + 1; (s)%lf: ⊦ m < n ∧ n < n0 → m +1 < n0; (forward) from specification nat-basic% ⊦ m < n → m ≤ n; (s)%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat% ⊦ m < n ↔ ¬ n ≤ m; (ss)