| # subarray(mkempbuf(n), n0, NODE_HEADER_SIZE) = # validtrailer, n1 < NODE_HEADER_SIZE, is-aligned(n0, NODE_HEADER_SIZE), is-aligned(# buf, NODE_HEADER_SIZE), n0 + NODE_HEADER_SIZE ≤ n, ∀ n1. n1 < # subarray(mkempbuf(n), n0, NODE_HEADER_SIZE) → subarray(mkempbuf(n), n0, NODE_HEADER_SIZE)[n1] = (validtrailer)[n1] ⊦ (validtrailer)[n1] = empty, n = 0 |
n1 < NODE_HEADER_SIZE, is-aligned(# buf, NODE_HEADER_SIZE), is-aligned(n0, NODE_HEADER_SIZE), n0 + NODE_HEADER_SIZE ≤ n, ∀ n2. n2 < NODE_HEADER_SIZE → mkempbuf(n)[n0 + n2] = (validtrailer)[n2] ⊦ (validtrailer)[n1] = empty, n = 0
Used simplifier rules: ⊦ n0 < n → subarray(buf, m, n)[n0] = buf[m + n0]; (s)% ⊦ # validtrailer = NODE_HEADER_SIZE; (s)% ⊦ # subarray(buf, m, n) = n; (s)