| st[n, mkblock(x, lax, m)][n0] = mkblock(x0, lax0, m0), inv-flashsize(x, lax), n0 ∈ st[n, mkblock(x, lax, m)], ∀ n0. n0 ∈ st → # st[n0].list = # st[n0].ladrlist ∧ inv-flashsize(st[n0].list, st[n0].ladrlist) ∧ ¬ dups(st[n0].ladrlist) ⊦ dups(lax), inv-flashsize(x0, lax0) ∧ ¬ dups(lax0) |
st[n, mkblock(x, lax, m)][n0] = mkblock(x0, lax0, m0), inv-flashsize(x, lax), n0 ∈ st[n, mkblock(x, lax, m)], ∀ n0. n0 ∈ st → # st[n0].list = # st[n0].ladrlist ∧ inv-flashsize(st[n0].list, st[n0].ladrlist) ∧ ¬ dups(st[n0].ladrlist) ⊦ n0 = n, dups(lax), inv-flashsize(x0, lax0) ∧ ¬ dups(lax0)
Used simplifier rules: ⊦ st[n, ablock][n] = ablock; (s)%⊦ mkblock(x, lax, m) = mkblock(x0, lax0, m0) ↔ x = x0 ∧ lax = lax0 ∧ m = m0; (ws)% ⊦ n ∈ st[n, ablock]; (s) Used formulas: n0 = n