| n0 = m0 + n, n0 < # ar0 ⊦ copy(ar, m, ar0, m0, n)[m0 + n, ar[m + n]][n0] = copy(ar, m + 1, ar0, m0 + 1, n)[m0, ar[m]][n0] |
m0 + n < # ar0 ⊦ ar[m + n] = copy(ar, m + 1, ar0, m0 + 1, n)[m0, ar[m]][m0 + n]
Used simplifier rules: size-copy: ⊦ # copy(ar, m, ar0, m0, n) = # ar0;%m < # ar ⊦ ar[m, a][m] = a; (s)% ⊦ m < n → (n ≤ m ↔ false); (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)