| st[n] = mkblock(x, lax, m), @(m0, m1) ∈ lax, n ∈ st ⊦ (st \ ns)[@(n, m0, m1)] = x[pos(@(m0, m1), lax)], n ∈ ns |
⊦ adr ∈ st → st[adr] = st[adr.lnum].list[pos(@(adr.pos, adr.size), st[adr.lnum].ladrlist)]
Used simplifier rules: in-diff-explicit: ⊦ ¬ n0 ∈ ns → (@(n0, n1, n2) ∈ st \ ns ↔ @(n0, n1, n2) ∈ st);%in-in-adr: ⊦ st[n] = mkblock(x, lax, m0) ∧ n ∈ st ∧ @(n0, n1) ∈ lax → @(n, n0, n1) ∈ st;%in-diff-explicit: ⊦ ¬ n0 ∈ ns → (@(n0, n1, n2) ∈ st \ ns ↔ @(n0, n1, n2) ∈ st);%in: ⊦ adr ∈ st ↔ adr.lnum ∈ st ∧ @(adr.pos, adr.size) ∈ st[adr.lnum].ladrlist;% ⊦ @(m, m0, m1).lnum = m; (s)% ⊦ ¬ n ∈ ns → (st \ ns)[n] = st[n]; (s)% ⊦ @(m, m0, m1).pos = m0; (s)% ⊦ @(m, m0, m1).size = m1; (s)% ⊦ mkblock(x, lax, m).list = x; (s)% ⊦ mkblock(x, lax, m).ladrlist = lax; (s) Used terms: @(n, m0, m1), st \ ns