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