| st[m] = mkblock(x, lax, m2), m ∈ st, @(m, m0, m1) ∈ as, @(m, m0, m1) ∈ st, as ⊆ dom nodes(st), ∀ adr. adr ∈ as → adr.size ≠ 0, ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ # as = 0, st[@(m, m0, m1)] = remove-refsize0(st)[@(m, m0, m1)], as = ∅, m2 = 0 |
⊦ adr ∈ st → st[adr] = st[adr.lnum].list[pos(@(adr.pos, adr.size), st[adr.lnum].ladrlist)]
st[m] = mkblock(x, lax, m2), @(m, m0, m1) ∈ st, @(m, m0, m1) ∈ as, m ∈ st, as ⊆ dom nodes(st), ∀ n. n ∈ st → st[n].ref-size = (as | n).size, ∀ adr. adr ∈ as → adr.size ≠ 0 ⊦ # as = 0, st[@(m, m0, m1)] = remove-refsize0(st)[@(m, m0, m1)], as = ∅, m2 = 0, @(m, m0, m1) ∈ remove-refsize0(st)
st[m] = mkblock(x, lax, m2), @(m, m0, m1) ∈ st, @(m, m0, m1) ∈ as, m ∈ st, @(m, m0, m1) ∈ remove-refsize0(st), as ⊆ dom nodes(st), ∀ n. n ∈ st → st[n].ref-size = (as | n).size, ∀ adr. adr ∈ as → adr.size ≠ 0 ⊦ # as = 0, st[@(m, m0, m1)] = remove-refsize0(st)[@(m, m0, m1).lnum].list[pos(@(@(m, m0, m1).pos, @(m, m0, m1).size), remove-refsize0(st)[@(m, m0, m1).lnum].ladrlist)], as = ∅, m2 = 0
Used terms: @(m, m0, m1), remove-refsize0(st)