| # buf1 = # buf, # buf = n0 + n + ENCODED_ELEM_SIZE, buf1[n + (n1 - n)] = empty, subarray(buf1, n + ENCODED_ELEM_SIZE, n0) = subarray(buf, n + ENCODED_ELEM_SIZE, n0), subarray(buf1, 0, n) = subarray(buf, 0, n), n1 < n + ENCODED_ELEM_SIZE, n1 < # buf, n < # buf, is-encoded(a, subarray(buf1, n, ENCODED_ELEM_SIZE)), n + ENCODED_ELEM_SIZE ≤ # buf, n ≤ n1 ⊦ n0 + ENCODED_ELEM_SIZE = 0, buf1[n1] = empty |
Used simplifier rules: c: ⊦ m + n = n + m; from specification nat-basic%n ≤ m ⊦ n0 = m - n ↔ m = n0 + n; (elim) Used terms: n1, n, n2