| inv(gstore \ ginval) ⊦ ( ¬ m ∈ ginval → ( m ∈ crash(gstore, gstore0, ginval, nx) ∧ @(m0, m1) ∈ prefixn(valid-group-nodes(gstore[m].gndlist), gstore[m].ladrlist) ↔ @(m, m0, m1) ∈ gstore ↓)) ∧ ( m ∈ gstore ∧ @(m0, m1) ∈ crash(gstore, gstore0, ginval, nx) ↓[m].ladrlist ∧ ¬ m ∈ ginval → nodes(crash(gstore, gstore0, ginval, nx) ↓, ginval)[@(m, m0, m1)] = nodes(gstore ↓, ginval)[@(m, m0, m1)]) |
gstore[m] = groupblock(gndx, lax, m2), inv(gstore \ ginval) ⊦ (¬ m ∈ ginval → (m ∈ crash(gstore, gstore0, ginval, nx) ∧ @(m0, m1) ∈ prefixn(valid-group-nodes(gndx), lax) ↔ @(m, m0, m1) ∈ gstore ↓)) ∧ ( m ∈ gstore ∧ @(m0, m1) ∈ crash(gstore, gstore0, ginval, nx) ↓[m].ladrlist ∧ ¬ m ∈ ginval → nodes(crash(gstore, gstore0, ginval, nx) ↓, ginval)[@(m, m0, m1)] = nodes(gstore ↓, ginval)[@(m, m0, m1)])
Used simplifier rules: ⊦ (gndx = gblock.gndlist ∧ lax = gblock.ladrlist) ∧ m = gblock.ref-size ↔ gblock = groupblock(gndx, lax, m); (elim) Used terms: gstore[m], gndx, lax, m2