| gstore[lnum] = groupblock(gndx, lax, m), abs-log(nx0, gstore).toSet ∩ (as | n) = ∅ ⊦ #(((lax.to-adr(lnum)).toSet ∪ abs-log(nx0, gstore).toSet) ∩ (as | n)) = 0, #((as | n) ∩ (lax.to-adr(lnum)).toSet) = 0, n = lnum, n ∈ nx0, ∀ adr. adr ∈ (as | n) ∩ (lax.to-adr(lnum)).toSet ↔ adr ∈ ∅ |
gstore[lnum] = groupblock(gndx, lax, m), abs-log(nx0, gstore).toSet ∩ (as | adr.lnum) = ∅, adr ∈ lax.to-adr(lnum), adr ∈ as ⊦ # as = 0, #((as | adr.lnum) ∩ (lax.to-adr(lnum)).toSet) = 0, #(((lax.to-adr(lnum)).toSet ∪ abs-log(nx0, gstore).toSet) ∩ (as | adr.lnum)) = 0, adr.lnum = lnum, as = ∅, (as | adr.lnum) ∩ (lax.to-adr(lnum)).toSet = ∅, adr.lnum ∈ nx0
Used simplifier rules: unc: ⊦ as ∪ as0 = as0 ∪ as; from specification set-union[node-store]%una: ⊦ (as ∪ as0) ∪ as1 = as ∪ as0 ∪ as1; from specification set-union[node-store]% ⊦ as ∩ (as0 ∪ as1) = ∅ ↔ as ∩ as0 = ∅ ∧ as ∩ as1 = ∅; (ws)%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]%ne-01: ⊦ adr ∈ as → as ≠ ∅; (forward) from specification set-basic[node-store]% ⊦ adr ∈ as | n ↔ adr.lnum = n ∧ adr ∈ as; (ws)%int-c: ⊦ as ∩ as0 = as0 ∩ as; from specification set-union[node-store]%int-a: ⊦ (as ∩ as0) ∩ as1 = as ∩ as0 ∩ as1; from specification set-union[node-store]% ⊦ adr ∈ ax.toSet ↔ adr ∈ ax; (s)% ⊦ adr ∈ as ∩ as0 ↔ adr ∈ as ∧ adr ∈ as0; (ws)% ⊦ ¬ adr ∈ ∅; (s)