| (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, (dom st0 \ ns) -- n ⊆ (dom st ++ n) \ (ns -- n) ∧ (n0 ∈ st0 \ (ns ++ n) ∧ n0 ∈ st[n, ablock] \ (ns -- n) → x ⊑ x0 ∧ lax ⊑ lax0 ∧ # x = # lax ∧ # x0 = # lax0) |
(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)
(st[n, ablock] \ (ns -- n))[n0] = mkblock(x0, lax0, m0), (st0 \ (ns ++ n))[n0] = mkblock(x, lax, m), n0 ∈ st0 \ (ns ++ n), n0 ∈ st[n, ablock] \ (ns -- n), 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, x ⊑ x0 ∧ lax ⊑ lax0 ∧ # x = # lax ∧ # x0 = # lax0