| st[m] = mkblock(x, lax, (as | m).size), inv(st), @(m, m0, m1) ∈ st, @(m, m0, m1) ∈ as, m ∈ st, as ⊆ dom nodes(st) ⊦ # as = 0, as = ∅, @(m, m0, m1) ∈ remove-refsize0(st), dom nodes(st) ⊆ dom nodes(remove-refsize0(st)) |
⊦ adr ∈ st ↔ adr.lnum ∈ st ∧ @(adr.pos, adr.size) ∈ st[adr.lnum].ladrlist
st[m] = mkblock(x, lax, (as | m).size), inv(st), m ∈ st, @(m, m0, m1) ∈ as, @(m, m0, m1) ∈ st, as ⊆ dom nodes(st) ⊦ # as = 0, as = ∅, dom nodes(st) ⊆ dom nodes(remove-refsize0(st)), @(m, m0, m1).lnum ∈ remove-refsize0(st) ∧ @(@(m, m0, m1).pos, @(m, m0, m1).size) ∈ remove-refsize0(st)[@(m, m0, m1).lnum].ladrlist
Used terms: remove-refsize0(st), @(m, m0, m1)