| inv(gstore \ ginval), ri-cons(ri, nodes(gstore ↓, ginval)) ⊦ #(range ri | m) = 0, (range ri | m).size = 0, ∀ adr. adr ∈ range ri | m ↔ adr ∈ ∅, ∃ adr. adr ∈ ri ∧ adr.lnum = m |
inv(gstore \ ginval), ri-cons(ri, nodes(gstore ↓, ginval)), adr ∈ ri ⊦ #(range ri | adr.lnum) = 0, (range ri | adr.lnum).size = 0, range ri | adr.lnum = ∅, ∃ adr0. adr0 ∈ ri ∧ adr0.lnum = adr.lnum
Used simplifier rules: size-zero-01: ⊦ as ≠ ∅ → # as ≠ 0; (forward) from specification set-basic[node-store]%size-zero: ⊦ # as ≠ 0 → as ≠ ∅; (forward) from specification set-basic[node-store]% ⊦ adr ∈ range ri ↔ adr ∈ ri; (s)% ⊦ adr ∈ as | n ↔ adr.lnum = n ∧ adr ∈ as; (ws)% ⊦ ¬ adr ∈ ∅; (s)