| ∀ n, buf. n < # buf ∧ datasize(buf, m0) < m0 ∧ m0 ≤ # buf ∧ n < m0 ∧ datasize(buf, m0) ≤ n ∧ datasize(buf, m0) < # buf → m0 = 0 ∨ buf[n] = empty ∨ # buf = 0, n < # buf, datasize(buf, m0 +1) < m0 +1, m0 +1 ≤ # buf, n < m0 +1, datasize(buf, m0 +1) ≤ n, datasize(buf, m0 +1) < # buf ⊦ m0 +1 = 0, buf[n] = empty, # buf = 0 |
⊦ 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,,let, ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1) Csimpnamedforward(nat,,fle-01, ⊦ m ≤ n ∧ n < n0 → m < n0) Csimpnamedseq(nat,,lels, ⊦ ¬ m < n ↔ n ≤ m) Csimpnamedseq(nat,,succ-01, ⊦ m + 1 ≤ n ↔ m < n) Csimpnamedseq(nat-basic2,,s, ⊦ m < n + 1 ↔ ¬ n < m) Csimpnamedseq(nat-basic2,,c, ⊦ m + n = n + m) Csimpnamedseq(nat-basic2,,a, ⊦ (m + n0) + n1 = m + n0 + n1) Csimpnamedseq(nat-basic2,,oz, ⊦ m + 1 ≠ 0) Csimpnamedseq(nat-basic2,,succ, ⊦ m +1 = m + 1)))]