| ∀ buf, n0. subarray(buf, n0, n) = mkempbuf(n) ∧ n0 + n ≤ # buf → datasize(buf, n0 + n) = datasize(buf, n0), subarray(buf, n0, n +1) = mkempbuf(n +1), n0 + n +1 ≤ # buf ⊦ datasize(buf, n0 + n +1) = datasize(buf, n0) |
⊦ datasize(buf, n + 1) = (buf[n] = empty ⊃ datasize(buf, n);n + 1)
[Concretesimprules((Csimpnamedseq(datasize-rec,,, ⊦ datasize(buf, n + 1) = (buf[n] = empty ⊃ datasize(buf, n) ;n + 1 )) Csimpnamedforward(nat-basic1,,f, ⊦ m < n → n ≠ 0) Csimpnamedseq(nat,,succ-01, ⊦ m + 1 ≤ n ↔ m < n) Csimpnamedseq(nat-basic2,,c, ⊦ m + n = n + m) Csimpnamedseq(nat-basic2,,a, ⊦ (m + n0) + n1 = m + n0 + n1) Csimpnamedseq(nat-basic2,,succ, ⊦ m +1 = m + 1)))]