| # x0 = # lax0, st[n] = mkblock(x0 + a ' + x1, lax0 + @(m0, m1) ' + lax1, m2), inv(st), n ∈ st ⊦ st[@(n, m0, m1)] = a |
# x0 = # lax0, st[n] = mkblock(x0 + a ' + x1, lax0 + @(m0, m1) ' + lax1, m2), n ∈ st, ∀ n0. n0 ∈ st → # st[n0].list = # st[n0].ladrlist ∧ inv-flashsize(st[n0].list, st[n0].ladrlist) ∧ ¬ dups(st[n0].ladrlist) ⊦ st[@(n, m0, m1)] = a
Used simplifier rules: inv-store: ⊦ inv(st) ↔ (∀ n. n ∈ st → inv(st[n]));%inv-block: ⊦ inv(ablock) ↔ # ablock.list = # ablock.ladrlist ∧ inv-flashsize(ablock.list, ablock.ladrlist) ∧ ¬ dups(ablock.ladrlist);