| inv(st), as ⊆ dom nodes(st), ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ dom nodes(st) ⊆ dom nodes(remove-refsize0(st)), ∀ adr. adr ∈ as → adr ∈ dom nodes(remove-refsize0(st)) |
inv(st), adr ∈ as, adr ∈ st, as ⊆ dom nodes(st), ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ # as = 0, as = ∅, adr ∈ remove-refsize0(st), dom nodes(st) ⊆ dom nodes(remove-refsize0(st))
Used simplifier rules: size-zero-01: ⊦ as ≠ ∅ → # as ≠ 0; (forward) from specification set-basic[address-store]%ne-01: ⊦ adr ∈ as → as ≠ ∅; (forward) from specification set-basic[address-store]%sub-in: ⊦ adr ∈ as ∧ as ⊆ as0 → adr ∈ as0; (forward) from specification set-basic[address-store]% ⊦ adr ∈ nodes(st) ↔ adr ∈ st; (s)% ⊦ adr ∈ dom ast ↔ adr ∈ ast; (s)