| m0 + m1 = # buf, m ≤ m1 ⊦ datasize(subarray(buf, m0, m1), m) = (datasize(buf, m0 + m) ≤ m0 ⊃ 0;datasize(buf, m0 + m) - m0) |
⊦ datasize(buf, 0) = 0
[Concretesimprules((Csimpnamedseq(datasize-base,,, ⊦ datasize(buf, 0) = 0) Csimpnamedseq(datasize-is-smaller-help,,, ⊦ ¬ n < datasize(buf, n)) Csimpgen(nat freely generated by 0, +1;) Csimpnamedseq(nat-basic2,,add-base, ⊦ n + 0 = n) Csimpnamedseq(nat-basic2,,a, ⊦ (m + n0) + n1 = m + n0 + n1) Csimpnamedseq(nat-basic2,,c, ⊦ m + n = n + m) Csimpnamedseq(nat,,lez, ⊦ 0 ≤ m) Csimpnamedseq(nat,,lels-01, ⊦ ¬ m ≤ n ↔ n < m)))]