| lax.head = @(m, m0), abs-failed(buf1 + buf0), abs-padding(buf1) ∧ abs-nodes(buf0, n + # buf1, nd ' + x0, lax, weak) ∨ lax ≠ [] ∧ m = n ∧ m0 = # buf1 ∧ abs-node(buf1, nd) ∧ abs-nodes(buf0, n + # buf1, x0, lax.tail, weak) ⊦ |
Used simplifier rules: abs-nodes-first-adr-explicit: ⊦ abs-nodes(buf, m, a ' + x, lax, weak) → (lax.head = ladr ↔ (∃ lax0. lax = ladr + lax0));% ⊦ abs-node(buf0, nd) → ¬ abs-failed(buf0 + buf1); (s)%append-a: ⊦ (buf + buf0) + buf1 = buf + buf0 + buf1; from specification array-splice[buffer]%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ ladr + lax = ladr ' + lax; (s)% ⊦ abs-padding(buf0) → ¬ abs-failed(buf0 + buf1); (s)