| # zbrar = BRANCH_SIZE, iast[adr] = indexnode(brar, bv1, nused + 1), indexnode(brar, bv1, nused + 1) = save(mkznode(rp, zbrar, bv1, false, nused + 1)), n < BRANCH_SIZE, nused < BRANCH_SIZE, adr ∈ iast, n ≤ nused ⊦ ( key ∈ (n = 0 ⊃ (nused = 0 ⊃ ri;ri |≤ load(brar[0]).key) ;(n = nused ⊃ ri |> load(brar[nused - 1]).key;(ri |> load(brar[n - 1]).key) |≤ load(brar[n]).key) ) ↔ key ∈ key-range(zbrar, n, nused + 1, ri)) ∧ ( key ∈ (n = 0 ⊃ (nused = 0 ⊃ ri;ri |≤ load(brar[0]).key) ;(n = nused ⊃ ri |> load(brar[nused - 1]).key;(ri |> load(brar[n - 1]).key) |≤ load(brar[n]).key) ) → (n = 0 ⊃ (nused = 0 ⊃ ri;ri |≤ load(brar[0]).key) ;(n = nused ⊃ ri |> load(brar[nused - 1]).key;(ri |> load(brar[n - 1]).key) |≤ load(brar[n]).key) ) [key ] = key-range(zbrar, n, nused + 1, ri)[key]) |
⊦ save(znd) = indexnode(save(znd.zbranches, 0, znd.usedsize), znd.leaf, znd.usedsize)
# zbrar = BRANCH_SIZE, iast[adr] = indexnode(brar, bv1, nused + 1), indexnode(brar, bv1, nused + 1) = indexnode (save(mkznode(rp, zbrar, bv1, false, nused + 1).zbranches, 0, mkznode(rp, zbrar, bv1, false, nused + 1).usedsize), mkznode(rp, zbrar, bv1, false, nused + 1).leaf, mkznode(rp, zbrar, bv1, false, nused + 1).usedsize), nused < BRANCH_SIZE, n < BRANCH_SIZE, adr ∈ iast, n ≤ nused ⊦ ( key ∈ (n = 0 ⊃ (nused = 0 ⊃ ri;ri |≤ load(brar[0]).key) ;(n = nused ⊃ ri |> load(brar[nused - 1]).key;(ri |> load(brar[n - 1]).key) |≤ load(brar[n]).key) ) ↔ key ∈ key-range(zbrar, n, nused + 1, ri)) ∧ ( key ∈ (n = 0 ⊃ (nused = 0 ⊃ ri;ri |≤ load(brar[0]).key) ;(n = nused ⊃ ri |> load(brar[nused - 1]).key;(ri |> load(brar[n - 1]).key) |≤ load(brar[n]).key) ) → (n = 0 ⊃ (nused = 0 ⊃ ri;ri |≤ load(brar[0]).key) ;(n = nused ⊃ ri |> load(brar[nused - 1]).key;(ri |> load(brar[n - 1]).key) |≤ load(brar[n]).key) ) [key ] = key-range(zbrar, n, nused + 1, ri)[key])
Used terms: mkznode(rp, zbrar, bv1, false, nused + 1)