| # buf < 2 * NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE), is-encoded(nodeheader(m, boolvar0), subarray(buf, 0, NODE_HEADER_SIZE)), NODE_HEADER_SIZE ≤ # buf ⊦ abs-nodes(buf, n, x, lax, weak) ↔ abs-failed(buf) ∧ x = [] ∧ lax = [] ∧ weak |
# buf < 2 * NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE), abs-nodes(buf, n, x, lax, weak), is-encoded(nodeheader(m, boolvar0), subarray(buf, 0, NODE_HEADER_SIZE)), NODE_HEADER_SIZE ≤ # buf ⊦ abs-failed(buf) ∧ x = [] ∧ lax = [] ∧ weak
Used simplifier rules: abs-failed-abs-nodes-h: ⊦ abs-failed(buf) → (abs-nodes(buf, n, x, lax, weak) ↔ lax = [] ∧ x = [] ∧ weak);% ⊦ NODE_HEADER_SIZE + n ≠ 0; (s)% ⊦ m0 * 1 = m0; (s)%m1 ≠ 0 ⊦ m < (* m1) * m + n0 ↔ (m1 - 1) * m + n0 ≠ 0; (s)%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%mult-c: ⊦ m * n = n * m; from specification nat-mult%mult-a: ⊦ m0 * m * n = (m0 * m) * n; from specification nat-mult% ⊦ 2 * NODE_HEADER_SIZE + n ≠ 0; (s)% ⊦ # subarray(buf, m, n) = n; (s)%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat%lfw-is-encoded-nodeheader-size: ⊦ is-encoded(ndhd, buf) → # buf = NODE_HEADER_SIZE; (forward) from specification abs-node%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic