| # x = # lax, st[n, mkblock(x + a ', lax + @(m, m2) ', m1)][m3] = mkblock(x0, lax0, m6), st[n] = mkblock(x, lax, m0), m3 = n, inv-flashsize(x, lax), n ∈ st, @(m3, m4, m5) ∈ st ⊦ @(m3, m4, m5) = @(n, m, m2), x0[pos(@(m4, m5), lax0)] = st[@(m3, m4, m5)], dups(lax), @(m, m2) ∈ lax |
# x = # lax, st[n] = mkblock(x, lax, m0), inv-flashsize(x, lax), n ∈ st, @(n, m4, m5) ∈ st ⊦ @(n, m4, m5) = @(n, m, m2), (x + a ')[pos(@(m4, m5), lax + @(m, m2) ')] = st[@(n, m4, m5)], dups(lax), @(m, m2) ∈ lax
Used simplifier rules: ⊦ a ∈ b ' ↔ a = b; (s)% ⊦ a ∈ x + y ↔ a ∈ x ∨ a ∈ y; (s)% ⊦ ladr ∈ ladr0 ' ↔ ladr = ladr0; (s)% ⊦ ladr ∈ lax + lax0 ↔ ladr ∈ lax ∨ ladr ∈ lax0; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list%in-15: ⊦ x + a ' = y → a ∈ y; (forward) from specification list%a: ⊦ (lax + lax0) + lax1 = lax + lax0 + lax1; from specification list[laddress-list]%in-15: ⊦ lax + ladr ' = lax0 → ladr ∈ lax0; (forward) from specification list[laddress-list]%⊦ mkblock(x, lax, m) = mkblock(x0, lax0, m0) ↔ x = x0 ∧ lax = lax0 ∧ m = m0; (ws)% ⊦ st[n, ablock][n] = ablock; (s)