| # zbrar = BRANCH_SIZE, n < BRANCH_SIZE, n < nused, nused ≤ BRANCH_SIZE, nused ≤ # load(save(zbrar, 0, nused), 0, nused) ⊦ (n = 0 ⊃ (nused = 1 ⊃ ri;ri |≤ load(save(zbrar, 0, nused), 0, nused)[0].key) ;(n + 1 = nused ⊃ ri |> load(save(zbrar, 0, nused), 0, nused)[n - 1].key ;(ri |> load(save(zbrar, 0, nused), 0, nused)[n - 1].key) |≤ load(save(zbrar, 0, nused), 0, nused)[n].key ) ) = key-range(zbrar, n, nused, ri) |
# zbrar = BRANCH_SIZE, n < nused, n < BRANCH_SIZE, nused ≤ BRANCH_SIZE ⊦ (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)) = key-range(zbrar, n, nused, ri)
Used simplifier rules: ⊦ # load(brar, m, nused) = BRANCH_SIZE; (s)% ⊦ m < n → ¬ n < m; (s)% ⊦ m < n + 1 ↔ ¬ n < m; (s)% ⊦ m + 1 ≤ n ↔ m < n; (s)% ⊦ m < m + n ↔ n ≠ 0; (s)%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%n0 ≤ n ⊦ n - n0 < m ↔ n < m + n0; (s)% ⊦ m < 1 ↔ m = 0; (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)% ⊦ load(save(zbrar[n])).key = zbrar[n].key; (s)%n < nused, nused ≤ BRANCH_SIZE ⊦ save(zbrar, 0, nused)[n] = save(zbrar[n]); (s)%n < nused, nused ≤ BRANCH_SIZE ⊦ load(brar, 0, nused)[n] = load(brar[n]); (s)% ⊦ m < n → n ≠ 0; (s)% ⊦ 0 < m ↔ m ≠ 0; (s)