| # buf1 = n2 + n1 + m, ⌜# buf1⌝ = ⌜n1⌝ + #((⌜buf0⌝ from n0) to m) + #(⌜buf1⌝ from n1 + m), n < # buf1, n1 < # buf1, n0 + m ≤ # buf0, n1 + m ≤ # buf1, n1 ≤ n ⊦ n2 + m = 0, (n1 + m ≤ n ⊃ buf1[n];buf0[(n - n1) + n0]) = (((⌜buf0⌝ from n0) to m) + (⌜buf1⌝ from n1 + m))[n - n1] |
# buf1 = n2 + n1 + m, n = n3 + n1, ⌜# buf1⌝ = ⌜n1⌝ + #((⌜buf0⌝ from n0) to m) + #(⌜buf1⌝ from n1 + m), n1 < # buf1, n < # buf1, n1 ≤ n, n1 + m ≤ # buf1, n0 + m ≤ # buf0 ⊦ n2 + m = 0, (n1 + m ≤ n ⊃ buf1[n];buf0[n3 + n0]) = (((⌜buf0⌝ from n0) to m) + (⌜buf1⌝ from n1 + m))[n3]
Used simplifier rules: n ≤ m ⊦ n0 = m - n ↔ m = n0 + n; (elim) Used terms: n, n1, n3