| st[n] = mkblock(x, lax, m), n ∈ st, n ∈ st \ ns → # (st \ ns)[n].list = # (st \ ns)[n].ladrlist ∧ inv-flashsize((st \ ns)[n].list, (st \ ns)[n].ladrlist) ∧ ¬ dups((st \ ns)[n].ladrlist) ⊦ m = 0, n ∈ dom remove-refsize0(st) ∩ ns, inv-flashsize(x, lax) ∧ ¬ dups(lax) |
st[n] = mkblock(x, lax, m), n ∈ st, ¬ n ∈ ns → # x = # lax ∧ inv-flashsize(x, lax) ∧ ¬ dups(lax) ⊦ m = 0, n ∈ dom remove-refsize0(st) ∩ ns, inv-flashsize(x, lax) ∧ ¬ dups(lax)
Used simplifier rules: ⊦ mkblock(x, lax, m).ladrlist = lax; (s)% ⊦ mkblock(x, lax, m).list = x; (s)% ⊦ ¬ n ∈ ns → (st \ ns)[n] = st[n]; (s)% ⊦ n ∈ st \ ns ↔ n ∈ st ∧ ¬ n ∈ ns; (ws)