| # x = # lax, st[n] = mkblock(x, lax, m0), inv-flashsize(x, lax), n ∈ st, @(n, m, m2) ∈ st[n, mkblock(x + a ', lax + @(m, m2) ', m1)] ⊦ st[n, mkblock(x + a ', lax + @(m, m2) ', m1)][@(n, m, m2)] = a, dups(lax), @(m, m2) ∈ lax |
# x = # lax, st[n] = mkblock(x, lax, m0), inv-flashsize(x, lax), n ∈ st ⊦ st[n, mkblock(x + a ', lax + @(m, m2) ', m1)][@(n, m, m2)] = a, dups(lax), @(m, m2) ∈ lax
Used simplifier rules: a: ⊦ (lax + lax0) + lax1 = lax + lax0 + lax1; from specification list[laddress-list]% ⊦ ladr ∈ ladr0 ' ↔ ladr = ladr0; (s)% ⊦ ladr ∈ lax + lax0 ↔ ladr ∈ lax ∨ ladr ∈ lax0; (s)% ⊦ mkblock(x, lax, m).ladrlist = lax; (s)% ⊦ @(n, n0, n1) ∈ st[n, ablock] ↔ @(n0, n1) ∈ ablock.ladrlist; (s)