| BRANCH_SIZE = # zbrar, iast[adr] = indexnode(brar, bv1, nused), zbrar[n] = mkzentry(key, adr0), indexnode(brar, bv1, nused) = save(mkznode(rp, zbrar, bv1, false, nused)), n < nused, n < BRANCH_SIZE, sorted(zbrar, 0, nused), key ∈ payload(load(brar, 0, nused), 0, nused), adr ∈ iast, nused ≤ BRANCH_SIZE, ∀ n0. n0 < n ∧ zbrar[n0].entry? → zbrar[n0].key ≠ key ⊦ payload(load(brar, 0, nused), 0, nused)[key] = adr0 |
m + nused ≤ # zbrar, n < nused, zbrar[m + n] = mkzentry(key, adr), ∀ n0. n0 < n ∧ zbrar[m + n0].entry? → zbrar[m + n0].key ≠ key ⊦ payload(zbrar, m, nused)[key] = adr
BRANCH_SIZE = # zbrar, zbrar[n] = mkzentry(key, adr0), iast[adr] = indexnode(brar, bv1, nused), indexnode(brar, bv1, nused) = save(mkznode(rp, zbrar, bv1, false, nused)), n < BRANCH_SIZE, n < nused, sorted(zbrar, 0, nused), adr ∈ iast, key ∈ payload(load(brar, 0, nused), 0, nused), nused ≤ BRANCH_SIZE, ∀ n0. n0 < n ∧ zbrar[n0].entry? → zbrar[n0].key ≠ key ⊦ payload(load(brar, 0, nused), 0, nused)[key] = adr0, 0 + nused ≤ # load(brar, 0, nused) ∧ n < nused ∧ load(brar, 0, nused)[0 + n] = mkzentry(key, adr0) ∧ (∀ n0. n0 < n ∧ load(brar, 0, nused)[0 + n0].entry? → load(brar, 0, nused)[0 + n0].key ≠ key)
Used terms: n, adr0, key, nused, 0, load(brar, 0, nused)