| # zbrar0 = BRANCH_SIZE, BRANCH_SIZE = # zbrar1, zbrar1[n] = mkzbranch(key1, adr1, r1), zbrar0[n] = mkzbranch(key0, adr0, r0), iast1[adr] = save(mkznode(rp1, zbrar1, bv, false, nused)), iast0[adr] = save(mkznode(rp0, zbrar0, bv, false, nused)), n < nused, n < BRANCH_SIZE, adr ∈ iast1, adr ∈ iast0, nused ≤ BRANCH_SIZE, iast0 ⊆ iast1 ⊦ key1 = key0 ∧ adr1 = adr0 |
⊦ iast ⊆ iast0 ↔ (∀ adr. adr ∈ iast → adr ∈ iast0 ∧ iast[adr] = iast0[adr])
# zbrar0 = BRANCH_SIZE, BRANCH_SIZE = # zbrar1, iast0[adr] = save(mkznode(rp0, zbrar0, bv, false, nused)), iast1[adr] = save(mkznode(rp1, zbrar1, bv, false, nused)), zbrar0[n] = mkzbranch(key0, adr0, r0), zbrar1[n] = mkzbranch(key1, adr1, r1), n < BRANCH_SIZE, n < nused, adr ∈ iast0, adr ∈ iast1, nused ≤ BRANCH_SIZE, ∀ adr. adr ∈ iast0 → adr ∈ iast1 ∧ iast0[adr] = iast1[adr] ⊦ key1 = key0 ∧ adr1 = adr0
Used terms: iast1, iast0