| 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 < BRANCH_SIZE, n < nused, sorted(zbrar, 0, nused), key ∈ payload(load(brar, 0, nused), 0, nused), adr ∈ iast, nused ≤ BRANCH_SIZE ⊦ payload(load(brar, 0, nused), 0, nused)[key] = payload(zbrar, 0, nused)[key] |
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 < nused, n < BRANCH_SIZE, sorted(zbrar, 0, nused), adr ∈ iast, key ∈ payload(load(brar, 0, nused), 0, nused), nused ≤ BRANCH_SIZE ⊦ payload(load(brar, 0, nused), 0, nused)[key] = payload(zbrar, 0, nused)[key], 0 + nused ≤ # zbrar ∧ n < nused ∧ zbrar[0 + n] = mkzentry(key, adr0) ∧ (∀ n0. n0 < n ∧ zbrar[0 + n0].entry? → zbrar[0 + n0].key ≠ key)
BRANCH_SIZE = # zbrar, zbrar[n] = mkzentry(key, adr0), iast[adr] = indexnode(brar, bv1, nused), zbrar[0 + n] = mkzentry(key, adr0), 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, 0 + nused ≤ # zbrar, ∀ n0. n0 < n ∧ zbrar[0 + n0].entry? → zbrar[0 + n0].key ≠ key ⊦ payload(load(brar, 0, nused), 0, nused)[key] = adr0
Used terms: n, adr0, key, nused, 0, zbrar