| # lax1 = # gndx1, # lax = # gndx, gstore[n] = groupblock(gndx, lax, m), adr = @(m1, m2, m3), transaction(ndx, gndx1), n ∈ gstore ⊦ dups(lax1), dups(lax), dups(lax + lax1), n ∈ ginval, (adr ∈ gstore ∧ ¬ m1 ∈ ginval ∨ adr ∈ lax1.to-adr(n) → (adr ∈ gstore ∨ adr ∈ lax1.to-adr(n)) ∧ ¬ m1 ∈ ginval) ∧ ( (adr ∈ gstore ∨ adr ∈ lax1.to-adr(n)) ∧ ¬ m1 ∈ ginval → nodes(gstore[n, groupblock(gndx + gndx1, lax + lax1, m0)], ginval)[adr] = nodes(gstore, ginval)[lax1.to-adr(n), ndx][adr]) |
# lax = # gndx, # lax1 = # gndx1, gstore[n] = groupblock(gndx, lax, m), transaction(ndx, gndx1), n ∈ gstore ⊦ dups(lax + lax1), dups(lax), dups(lax1), n ∈ ginval, (@(m1, m2, m3) ∈ gstore ∧ ¬ m1 ∈ ginval ∨ m1 = n ∧ @(m2, m3) ∈ lax1 → (@(m1, m2, m3) ∈ gstore ∨ m1 = n ∧ @(m2, m3) ∈ lax1) ∧ ¬ m1 ∈ ginval) ∧ ( (@(m1, m2, m3) ∈ gstore ∨ m1 = n ∧ @(m2, m3) ∈ lax1) ∧ ¬ m1 ∈ ginval → nodes(gstore[n, groupblock(gndx + gndx1, lax + lax1, m0)], ginval)[@(m1, m2, m3)] = nodes(gstore, ginval)[lax1.to-adr(n), ndx][@(m1, m2, m3)])
Used simplifier rules: ⊦ @(n0, n1, n2) ∈ lax.to-adr(n) ↔ n0 = n ∧ @(n1, n2) ∈ lax; (s)