| gstore[m] = groupblock(gndx, lax, m2) ⊦ ( (@(m, m0, m1).lnum ∈ gstore ∧ @(@(m, m0, m1).pos, @(m, m0, m1).size) ∈ gstore[@(m, m0, m1).lnum].ladrlist) ∧ m ≠ n ∧ ¬ m ∈ ginval → ¬ @(m, m0, m1) ∈ dom nodes(gstore, ginval) | n) ∧ ( m ∈ gstore ∧ @(m0, m1) ∈ lax ∧ m ≠ n ∧ ¬ m ∈ ginval → nodes(gstore -- n, ginval ++ n)[@(m, m0, m1)] = (nodes(gstore, ginval) \ (dom nodes(gstore, ginval) | n))[@(m, m0, m1)]) |
gstore[m] = groupblock(gndx, lax, m2) ⊦ (m ∈ gstore ∧ @(m0, m1) ∈ lax ∧ m ≠ n ∧ ¬ m ∈ ginval → ¬ @(m, m0, m1) ∈ dom nodes(gstore, ginval) | n) ∧ ( m ∈ gstore ∧ @(m0, m1) ∈ lax ∧ m ≠ n ∧ ¬ m ∈ ginval → nodes(gstore -- n, ginval ++ n)[@(m, m0, m1)] = (nodes(gstore, ginval) \ (dom nodes(gstore, ginval) | n))[@(m, m0, m1)])
Used simplifier rules: ⊦ groupblock(gndx, lax, m).ladrlist = lax; (s)% ⊦ @(m, m0, m1).size = m1; (s)% ⊦ @(m, m0, m1).pos = m0; (s)% ⊦ @(m, m0, m1).lnum = m; (s)