| # x1 = # lax1, # x = # lax, st[n] = mkblock(x, lax, m0), n ∈ st ⊦ adr.lnum ∈ st[n, mkblock(x + x1, lax + lax1, m)] ∧ @(adr.pos, adr.size) ∈ st[n, mkblock(x + x1, lax + lax1, m)][adr.lnum].ladrlist ↔ adr ∈ st ∨ adr ∈ lax1.to-adr(n) |
# x = # lax, # x1 = # lax1, st[n] = mkblock(x, lax, m0), adr = @(m1, m2, m3), n ∈ st ⊦ m1 ∈ st[n, mkblock(x + x1, lax + lax1, m)] ∧ @(m2, m3) ∈ st[n, mkblock(x + x1, lax + lax1, m)][m1].ladrlist ↔ adr ∈ st ∨ adr ∈ lax1.to-adr(n)
Used simplifier rules: ⊦ (m = adr.lnum ∧ m0 = adr.pos) ∧ m1 = adr.size ↔ adr = @(m, m0, m1); (elim) Used terms: adr, m5, m6, m7