| # buf1 = NODE_HEADER_SIZE, is-aligned(# buf0, 2 * NODE_HEADER_SIZE), is-encoded(nodeheader(# buf0, true), buf1) ⊦ abs-nodes(buf1 + buf0 + validtrailer, m, [], lax, weak) ↔ lax = [] |
⊦ abs-nodes(buf, m, [], lax, weak) ↔ # buf = 0 ∧ lax = [] ∨ (∃ buf0, buf1. buf = buf0 + buf1 ∧ abs-padding(buf0) ∧ abs-nodes(buf1, m + # buf0, [], lax, weak)) ∨ weak ∧ abs-failed(buf) ∧ lax = []
# buf1 = NODE_HEADER_SIZE, is-aligned(# buf0, 2 * NODE_HEADER_SIZE), is-encoded(nodeheader(# buf0, true), buf1) ⊦ #(buf1 + buf0 + validtrailer) = 0 ∧ lax = [] ∨ (∃ buf3, buf2. buf1 + buf0 + validtrailer = buf3 + buf2 ∧ abs-padding(buf3) ∧ abs-nodes(buf2, m + # buf3, [], lax, weak)) ∨ weak ∧ abs-failed(buf1 + buf0 + validtrailer) ∧ lax = [] ↔ lax = []
Used terms: weak, lax, m, buf1 + buf0 + validtrailer