| # zbrar0 = # zbrar1, n < m, n < # zbrar1, m ≤ # zbrar1, ∀ n0. n0 ≤ n ∧ n0 ≤ m → zbrar0[n0].key = zbrar1[n0].key ⊦ key-range(zbrar0, n, m, ri) = key-range(zbrar1, n, m, ri) |
⊦ n < nused ∧ nused ≤ # zbrar → key-range(zbrar, n, nused, ri) = (n = 0 ⊃ (nused = 1 ⊃ ri;ri |≤ zbrar[0].key);(n + 1 = nused ⊃ ri |> zbrar[n - 1].key;(ri |> zbrar[n - 1].key) |≤ zbrar[n].key))
# zbrar0 = # zbrar1, n < # zbrar1, n < m, m ≤ # zbrar1, m ≤ # zbrar0, ∀ n0. n0 ≤ n ∧ n0 ≤ m → zbrar0[n0].key = zbrar1[n0].key ⊦ (n = 0 ⊃ (m = 1 ⊃ ri;ri |≤ zbrar0[0].key);(n + 1 = m ⊃ ri |> zbrar0[n - 1].key;(ri |> zbrar0[n - 1].key) |≤ zbrar0[n].key)) = key-range(zbrar1, n, m, ri)
Used simplifier rules: ⊦ m ≤ n ↔ ¬ n < m; (ss)%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%lf: ⊦ m < n ∧ n < n0 → m +1 < n0; (forward) from specification nat-basic%transitivity: ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward) from specification oelem[nat-set]%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat% ⊦ ¬ n < n; (s) Used terms: ri, m, n, zbrar0