| # zbrar0 = # zbrar1, n < m, n < # zbrar1, m ≤ # zbrar1, ∀ 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) |
⊦ 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, ∀ 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)) = (n = 0 ⊃ (m = 1 ⊃ ri;ri |≤ zbrar1[0].key);(n + 1 = m ⊃ ri |> zbrar1[n - 1].key;(ri |> zbrar1[n - 1].key) |≤ zbrar1[n].key))
Used terms: ri, m, n, zbrar1