| # gndx = # lax, (range ri | m).size = 0, gstore[m] = groupblock(gndx, lax, m1), ri[key] = @(m, m0, 0), inv(gstore \ ginval), inv-flashsize(gndx, lax), key-cons(key, nodes(gstore ↓, ginval)[@(m, m0, 0)]), key ∈ ri, @(m0, 0) ∈ prefixn(valid-group-nodes(gndx), lax), m ∈ gstore ⊦ dups(lax), m ∈ ginval |
⊦ inv-flashsize(gndx, lax) ↔ # gndx = # lax ∧ (∀ n. n < # gndx → lax[n].size = gndx[n].flashsize)
# gndx = # lax, (range ri | m).size = 0, ri[key] = @(m, m0, 0), gstore[m] = groupblock(gndx, lax, m1), inv(gstore \ ginval), key-cons(key, nodes(gstore ↓, ginval)[@(m, m0, 0)]), m ∈ gstore, @(m0, 0) ∈ prefixn(valid-group-nodes(gndx), lax), key ∈ ri, ∀ n. n < # gndx → lax[n].size = gndx[n].flashsize ⊦ dups(lax), m ∈ ginval
Used terms: lax, gndx