| (st[n, ablock] \ (ns -- n))[n0] = mkblock(x0, lax0, m0), (st0 \ (ns ++ n))[n0] = mkblock(x, lax, m), dom st0 \ ns ⊆ dom st \ ns, ∀ n. n ∈ st0 \ ns ∧ n ∈ st \ ns → (st0 \ ns)[n].list ⊑ (st \ ns)[n].list ∧ (st0 \ ns)[n].ladrlist ⊑ (st \ ns)[n].ladrlist ∧ # (st0 \ ns)[n].list = # (st0 \ ns)[n].ladrlist ∧ # (st \ ns)[n].list = # (st \ ns)[n].ladrlist ⊦ n ∈ st, (dom st0 \ ns) -- n ⊆ (dom st ++ n) \ (ns -- n) |
⊦ ns ⊆ ns0 ↔ (∀ n. n ∈ ns → n ∈ ns0)
(st0 \ (ns ++ n))[n0] = mkblock(x, lax, m), (st[n, ablock] \ (ns -- n))[n0] = mkblock(x0, lax0, m0), dom st0 \ ns ⊆ dom st \ ns, ∀ n. n ∈ st0 \ ns ∧ n ∈ st \ ns → (st0 \ ns)[n].list ⊑ (st \ ns)[n].list ∧ (st0 \ ns)[n].ladrlist ⊑ (st \ ns)[n].ladrlist ∧ # (st0 \ ns)[n].list = # (st0 \ ns)[n].ladrlist ∧ # (st \ ns)[n].list = # (st \ ns)[n].ladrlist ⊦ n ∈ st, ∀ n0. n0 ∈ (dom st0 \ ns) -- n → n0 ∈ (dom st ++ n) \ (ns -- n)
Used terms: (dom st ++ n) \ (ns -- n), (dom st0 \ ns) -- n