| ⊦ range=(ar0, n0, ar1, n1, m) ↔ n0 + m ≤ # ar0 ∧ n1 + m ≤ # ar1 ∧ (∀ n. n < m → ar0[n0 + n] = ar1[n1 + n]) |
⊦ range=(ar0, n0, ar1, n1, 0) ↔ n0 ≤ # ar0 ∧ n1 ≤ # ar1
[Concretesimprules((Csimpnamedseq(range-eq-0,,, ⊦ range=(ar0, n0, ar1, n1, 0) ↔ n0 ≤ # ar0 ∧ n1 ≤ # ar1) 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-basic1,,zero-01, ⊦ ¬ m < 0)))]