| # gndx = # lax1 + # lax0 + 1, (range ri | m).size = 0, ri[key] = @(m, m0, 0), gstore[m] = groupblock(gndx, lax1 + @(m0, 0) ' + lax0, m1), inv(groupblock(gndx, lax1 + @(m0, 0) ' + lax0, m1)), inv(gstore \ ginval), key-cons(key, nodes(gstore ↓, ginval)[@(m, m0, 0)]), @(m0, 0) ∈ prefixn(valid-group-nodes(gndx), lax1 + @(m0, 0) ' + lax0), key ∈ ri, m ∈ gstore, ∀ n. ¬ # lax1 + # lax0 < n → (lax1 + @(m0, 0) ' + lax0)[n].size = gndx[n].flashsize ⊦ dups(lax0), dups(lax1 + lax0), @(m0, 0) ∈ lax0, @(m0, 0) ∈ lax1, m ∈ ginval |
Used simplifier rules: ⊦ ¬ m + n < m; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ (lax + ladr ' + lax0)[# lax] = ladr; (s)%a: ⊦ (lax + lax0) + lax1 = lax + lax0 + lax1; from specification list[laddress-list]% ⊦ @(m, m0).size = m0; (s)% ⊦ gnd.flashsize ≠ 0; (s) Used terms: # lax1