| 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 ⊦ dom((st0 \ ns) -- n) ⊆ dom((st \ ns) -- n) ∧ (∀ n0. n0 ∈ (st0 \ ns) -- n ∧ n0 ∈ (st \ ns) -- n → ((st0 \ ns) -- n)[n0].list ⊑ ((st \ ns) -- n)[n0].list ∧ ((st0 \ ns) -- n)[n0].ladrlist ⊑ ((st \ ns) -- n)[n0].ladrlist ∧ # ((st0 \ ns) -- n)[n0].list = # ((st0 \ ns) -- n)[n0].ladrlist ∧ # ((st \ ns) -- n)[n0].list = # ((st \ ns) -- n)[n0].ladrlist) |
n0 ∈ st0, n0 ∈ st, 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 ⊦ n0 = n, n0 ∈ ns, st0[n0].list ⊑ st[n0].list ∧ st0[n0].ladrlist ⊑ st[n0].ladrlist ∧ # st0[n0].list = # st0[n0].ladrlist ∧ # st[n0].list = # st[n0].ladrlist
Used simplifier rules: ⊦ ¬ n ∈ ns → (st \ ns)[n] = st[n]; (s)% ⊦ n ∈ st \ ns ↔ n ∈ st ∧ ¬ n ∈ ns; (ws)% ⊦ n ≠ n0 → (st -- n0)[n] = st[n]; (s)% ⊦ n ∈ st -- n0 ↔ n ≠ n0 ∧ n ∈ st; (s)% ⊦ ns ⊆ ns0 → ns -- n ⊆ ns0 -- n; (s)% ⊦ dom(st \ ns) = dom st \ ns; (s)% ⊦ dom(st -- n) = dom st -- n; (s)