| # x = # lax, # x1 = # lax1, st[n] = mkblock(x, lax, m0), n ∈ st ⊦ m1 ∈ st[n, mkblock(x + x1, lax + lax1, m)] ∧ @(m2, m3) ∈ st[n, mkblock(x + x1, lax + lax1, m)][m1].ladrlist ↔ @(m1, m2, m3).lnum ∈ st ∧ @(@(m1, m2, m3).pos, @(m1, m2, m3).size) ∈ st[@(m1, m2, m3).lnum].ladrlist ∨ @(m1, m2, m3) ∈ lax1.to-adr(n) |
⊦ n ≠ n0 → st[n0, ablock][n] = st[n]
Used simplifier rules: to-adrs-in: ⊦ @(m, m0, m1) ∈ lax.to-adr(n) ↔ m = n ∧ @(m0, m1) ∈ lax;%to-adrs-in: ⊦ @(m, m0, m1) ∈ lax.to-adr(n) ↔ m = n ∧ @(m0, m1) ∈ lax;% ⊦ n ≠ n0 → (n ∈ st[n0, ablock] ↔ n ∈ st); (s)% ⊦ @(m, m0, m1).lnum = m; (s)% ⊦ @(m, m0, m1).pos = m0; (s)% ⊦ @(m, m0, m1).size = m1; (s)% ⊦ n ∈ st[n, ablock]; (s)% ⊦ st[n, ablock][n] = ablock; (s)% ⊦ mkblock(x, lax, m).ladrlist = lax; (s)% ⊦ ladr ∈ lax + lax0 ↔ ladr ∈ lax ∨ ladr ∈ lax0; (s)%a: ⊦ (lax + lax0) + lax1 = lax + lax0 + lax1; from specification list[laddress-list] Used terms: m1, mkblock(x + x1, lax + lax1, m), n, st