| gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)][m1] = groupblock(gndx0, lax0, m4), gstore[m] = groupblock(gndx, lax, n0), m ∈ gstore, valid-group-nodes(gndx) ≤ n0, n0 ≤ m0, valid-group-nodes(gndx) ≤ m0 ⊦ (¬ m1 ∈ ginval → ((m1 = m ∨ m1 ∈ gstore ↓) ∧ @(m2, m3) ∈ lax0 ↔ @(m1, m2, m3) ∈ gstore ↓)) ∧ ( (m1 = m ∨ m1 ∈ gstore ↓) ∧ @(m2, m3) ∈ lax0 ∧ ¬ 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)]) |
gstore[m] = groupblock(gndx, lax, n0), gstore ↓[m, groupblock(prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0)][m1] = groupblock(gndx0, lax0, m4), m ∈ gstore, valid-group-nodes(gndx) ≤ m0, n0 ≤ m0, valid-group-nodes(gndx) ≤ n0 ⊦ (¬ m1 ∈ ginval → (m1 ∈ gstore ∧ @(m2, m3) ∈ lax0 ↔ @(m1, m2, m3) ∈ gstore ↓)) ∧ ( m1 ∈ gstore ∧ @(m2, m3) ∈ lax0 ∧ ¬ 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 simplifier rules: down-store-in: ⊦ n ∈ gstore ↓ ↔ n ∈ gstore;