| n < n0 + n1, n0 ≤ n, m0 + n0 + n1 ≤ # ar ⊦ (subarray(ar, m0, n0) + subarray(ar, n0 + m0, n1))[n] = ar[m0 + n], n1 = 0 |
⊦ # ar0 ≤ n ∧ n < # ar0 + # ar1 → (ar0 + ar1)[n] = ar1[n - # ar0]
n < n0 + n1, n < # subarray(ar, m0, n0) + # subarray(ar, n0 + m0, n1), m0 + n0 + n1 ≤ # ar, n0 ≤ n, # subarray(ar, m0, n0) ≤ n ⊦ subarray(ar, n0 + m0, n1)[n - # subarray(ar, m0, n0)] = ar[m0 + n], n1 = 0
Used simplifier rules: ⊦ # subarray(ar, m, n) = n; (s) Used terms: n, subarray(ar, n0 + m0, n1), subarray(ar, m0, n0)