| ⊦ st[n, mkblock(a ', @(m, m0) ', m1)][@(n, m, m0)] = a, n ∈ st |
⊦ adr ∈ st → st[adr] = st[adr.lnum].list[pos(@(adr.pos, adr.size), st[adr.lnum].ladrlist)]
Used simplifier rules: ⊦ @(m, m0, m1).lnum = m; (s)% ⊦ st[n, ablock][n] = ablock; (s)% ⊦ mkblock(x, lax, m).list = x; (s)% ⊦ @(m, m0, m1).pos = m0; (s)% ⊦ @(m, m0, m1).size = m1; (s)% ⊦ mkblock(x, lax, m).ladrlist = lax; (s)% ⊦ pos(ladr, ladr ') = 0; (s)% ⊦ a '[0] = a; (s)% ⊦ @(n, n0, n1) ∈ st[n, ablock] ↔ @(n0, n1) ∈ ablock.ladrlist; (s)% ⊦ ladr ∈ ladr0 ' ↔ ladr = ladr0; (s) Used terms: @(n, m, m0), st[n, mkblock(a ', @(m, m0) ', m1)]