| m2 = m, m3 = # buf1, m0 < m, abs-node(buf1, nd), abs-nodes(buf0, m + # buf1, x0, lax0, boolvar), @(m0, m1) = @(m2, m3) ∨ @(m0, m1) ∈ lax0, ∀ buf2, m0, m, x, lax, boolvar, m1. # buf2 < #(buf1 + buf0) → m0 < m ∧ abs-nodes(buf2, m, x, lax, boolvar) ∧ @(m0, m1) ∈ lax → false ⊦ |
# buf1 = nd.alignedsize + 2 * NODE_HEADER_SIZE, m0 < m, abs-node(buf1, nd), abs-nodes(buf0, m + # buf1, x0, lax0, boolvar), @(m0, m1) ∈ lax0, ∀ buf2, m0, m, x, lax, boolvar, m1. # buf2 < #(buf1 + buf0) → m0 < m ∧ abs-nodes(buf2, m, x, lax, boolvar) ∧ @(m0, m1) ∈ lax → false ⊦ m0 = m
Used simplifier rules: ls-abs-node-buf-size: ⊦ abs-node(buf, nd) → # buf = nd.alignedsize + 2 * NODE_HEADER_SIZE;%inj-adr: ⊦ @(m0, m1) = @(m2, m3) ↔ m0 = m2 ∧ m1 = m3;% ⊦ ¬ n < n; (s)%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic% ⊦ @(m, m0) = @(m1, m2) ↔ m = m1 ∧ m0 = m2; (ws)