| ⊦ # splice(ar0, n0, ar1, n1, m) = max(# ar1, n1 + m), m = 0 |
⊦ n1 + m ≤ # ar1 ∧ m ≠ 0 → splice(ar0, n0, ar1, n1, m) = copy(ar0, n0, ar1, n1, m)
⊦ # ar1 < n1 + m ∧ m ≠ 0 → splice(ar0, n0, ar1, n1, m) = copy(ar0, n0, resize(ar1, n1 + m), n1, m)
⊦ # resize(ar, n) = n
Used simplifier rules: splice-resize: ⊦ # ar1 < n1 + m ∧ m ≠ 0 → splice(ar0, n0, ar1, n1, m) = copy(ar0, n0, resize(ar1, n1 + m), n1, m);%resize-len: ⊦ # resize(ar, n) = n;% ⊦ # copy(ar, m, ar0, m0, n) = # ar0; (s)% ⊦ m ≤ n → max(n, m) = n; (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ n < m → max(n, m) = m; (s)% ⊦ m + n = m + n0 ↔ n = n0; (s) Used terms: m, n1, ar1, n0, ar0