| # ndx = # lax1, # gstore[n].gndlist = # gstore[n].ladrlist, # gndx1 = # lax1, n ∈ gstore, ∀ n. n < # lax1 → gndx1[n].nd = ndx[n], gndx1 = [] ∨ gndx1.head.start ∧ gndx1.last.end ∧ (∀ n0. (n0 ≠ 0 ∧ n0 < # lax1 → ¬ gndx1[n0].start) ∧ (n0 + 1 < # lax1 → ¬ gndx1[n0].end)) ⊦ dups(gstore[n].ladrlist + lax1), dups(gstore[n].ladrlist), dups(lax1), nodes-cons(lax1.to-adr(n), ndx, gstore[n, groupblock(gstore[n].gndlist + gndx1, gstore[n].ladrlist + lax1, m)], ginval), n ∈ ginval |
# gndx1 = # lax1, # gndx = # lax, # ndx = # lax1, gstore[n] = groupblock(gndx, lax, m0), n ∈ gstore, ∀ n. n < # lax1 → gndx1[n].nd = ndx[n], gndx1 = [] ∨ gndx1.head.start ∧ gndx1.last.end ∧ (∀ n0. (n0 ≠ 0 ∧ n0 < # lax1 → ¬ gndx1[n0].start) ∧ (n0 + 1 < # lax1 → ¬ gndx1[n0].end)) ⊦ dups(lax1), dups(lax), dups(lax + lax1), nodes-cons(lax1.to-adr(n), ndx, gstore[n, groupblock(gndx + gndx1, lax + lax1, m)], ginval), n ∈ ginval
Used simplifier rules: ⊦ (gndx = gblock.gndlist ∧ lax = gblock.ladrlist) ∧ m = gblock.ref-size ↔ gblock = groupblock(gndx, lax, m); (elim) Used terms: gstore[n], gndx, lax, m0