| ⊦ copy(ar, m, ar0, m0, n)[m0 + n, ar[m + n]] = copy(ar, m + 1, ar0, m0 + 1, n)[m0, ar[m]] |
⊦ ar1 = ar2 ↔ # ar1 = # ar2 ∧ (∀ n. n < # ar1 → ar1[n] = ar2[n])
⊦ # copy(ar, m, ar0, m0, n)[m0 + n, ar[m + n]] = # copy(ar, m + 1, ar0, m0 + 1, n)[m0, ar[m]] ∧ (∀ n0. n0 < # copy(ar, m, ar0, m0, n)[m0 + n, ar[m + n]] → copy(ar, m, ar0, m0, n)[m0 + n, ar[m + n]][n0] = copy(ar, m + 1, ar0, m0 + 1, n)[m0, ar[m]][n0])
Used terms: copy(ar, m + 1, ar0, m0 + 1, n)[m0, ar[m]], copy(ar, m, ar0, m0, n)[m0 + n, ar[m + n]]