| gstore[m] = groupblock(gndx, lax, m2), m ∈ gstore, @(m0, m1) ∈ prefixn(valid-group-nodes(gndx), lax) ⊦ prefixn(valid-group-nodes(gndx), gndx)[pos(@(m0, m1), lax)] = gstore[@(m, m0, m1)], @(m, m0, m1) ∈ gstore, m ∈ ginval |
⊦ adr ∈ gstore ↔ adr.lnum ∈ gstore ∧ @(adr.pos, adr.size) ∈ gstore[adr.lnum].ladrlist
Used simplifier rules: valid-group-nodes-entire: ⊦ # gndx ≤ valid-group-nodes(gndx) ↔ valid-group-nodes(gndx) = # gndx;% ⊦ @(m, m0, m1).lnum = m; (s)% ⊦ @(m, m0, m1).pos = m0; (s)% ⊦ @(m, m0, m1).size = m1; (s)% ⊦ groupblock(gndx, lax, m).ladrlist = lax; (s)% ⊦ ladr ∈ prefixn(n, lax) → ladr ∈ lax; (ss)%# gndx ≤ m ⊦ prefixn(m, gndx) = gndx; (s) Used terms: gstore, @(m, m0, m1)