| gstore[m] = groupblock(gndx, lax, n0), m ∈ gstore, valid-group-nodes(gndx) ≤ n0, n0 ≤ m0, valid-group-nodes(gndx) ≤ m0 ⊦ ( ¬ adr.lnum ∈ ginval → (adr ∈ gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)] ↔ adr ∈ gstore ↓)) ∧ ( adr ∈ gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)] ∧ ¬ adr.lnum ∈ ginval → nodes(gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)], ginval)[adr] = nodes(gstore ↓, ginval)[adr]) |
gstore[m] = groupblock(gndx, lax, n0), adr = @(m1, m2, m3), m ∈ gstore, valid-group-nodes(gndx) ≤ m0, n0 ≤ m0, valid-group-nodes(gndx) ≤ n0 ⊦ ( ¬ m1 ∈ ginval → (adr ∈ gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)] ↔ adr ∈ gstore ↓)) ∧ ( adr ∈ 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)[adr] = nodes(gstore ↓, ginval)[adr])
Used simplifier rules: ⊦ (m = adr.lnum ∧ m0 = adr.pos) ∧ m1 = adr.size ↔ adr = @(m, m0, m1); (elim) Used terms: adr, m3, m4, m5