| gstore[m] = groupblock(gndx, lax, n0), m ∈ gstore, valid-group-nodes(gndx) ≤ n0, n0 ≤ m0, valid-group-nodes(gndx) ≤ m0 ⊦ ( ¬ m1 ∈ ginval → ( @(m1, m2, m3) ∈ gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)] ↔ @(m1, m2, m3) ∈ gstore ↓)) ∧ ( @(m1, m2, m3) ∈ gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)] ∧ ¬ m1 ∈ ginval → nodes(gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)], ginval)[@(m1, m2, m3)] = nodes(gstore ↓, ginval)[@(m1, m2, m3)]) |
⊦ adr ∈ gstore ↔ adr.lnum ∈ gstore ∧ @(adr.pos, adr.size) ∈ gstore[adr.lnum].ladrlist
gstore[m] = groupblock(gndx, lax, n0), m ∈ gstore, valid-group-nodes(gndx) ≤ m0, n0 ≤ m0, valid-group-nodes(gndx) ≤ n0 ⊦ ( ¬ m1 ∈ ginval → ( @(m1, m2, m3).lnum ∈ gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)] ∧ @(@(m1, m2, m3).pos, @(m1, m2, m3).size) ∈ gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)][@(m1, m2, m3).lnum].ladrlist ↔ @(m1, m2, m3) ∈ gstore ↓)) ∧ ( ( @(m1, m2, m3).lnum ∈ gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)] ∧ @(@(m1, m2, m3).pos, @(m1, m2, m3).size) ∈ gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)][@(m1, m2, m3).lnum].ladrlist) ∧ ¬ m1 ∈ ginval → nodes(gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)], ginval)[@(m1, m2, m3)] = nodes(gstore ↓, ginval)[@(m1, m2, m3)])
Used terms: gstore ↓ [m, groupblock (prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0) ], @(m1, m2, m3)