| # buf1 = nd.alignedsize + 2 * NODE_HEADER_SIZE, m0 = m, m1 = # buf1, nd = nd0, abs-node(buf1, nd), abs-nodes(buf0, m + # buf1, x, lax2, false), abs-nodes(buf0, m + # buf1, x2, lax3, boolvar1), ∀ buf2, m, x0, lax0, x1, lax1, boolvar1. # buf2 < #(buf1 + buf0) → abs-nodes(buf2, m, x0, lax0, false) → (abs-nodes(buf2, m, x1, lax1, boolvar1) ↔ x0 = x1 ∧ lax0 = lax1) ⊦ nd ' + x = nd0 ' + x2 ∧ @(m, # buf1) ' + lax2 = @(m0, m1) ' + lax3 |
# buf1 = nd0.alignedsize + 2 * NODE_HEADER_SIZE, abs-node(buf1, nd0), abs-nodes(buf0, m + # buf1, x2, lax3, boolvar1), abs-nodes(buf0, m + # buf1, x, lax2, false), ∀ buf2, m, x0, lax0, x1, lax1, boolvar1. # buf2 < #(buf1 + buf0) → abs-nodes(buf2, m, x0, lax0, false) → (abs-nodes(buf2, m, x1, lax1, boolvar1) ↔ x0 = x1 ∧ lax0 = lax1) ⊦ x = x2 ∧ lax2 = lax3
Used simplifier rules: ls-abs-node-buf-size: ⊦ abs-node(buf, nd) → # buf = nd.alignedsize + 2 * NODE_HEADER_SIZE;%a: ⊦ (lax + lax0) + lax1 = lax + lax0 + lax1; from specification list[laddress-list]% ⊦ ladr ' + lax = ladr ' + lax0 ↔ lax = lax0; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ a ' + x = a ' + y ↔ x = y; (s)