| n < n0 ⊦ # copy(ar[n, a], n0, mkarray(n1), 0, n1) = # copy(ar, n0, mkarray(n1), 0, n1) ∧ (∀ n2. n2 < # copy(ar[n, a], n0, mkarray(n1), 0, n1) → copy(ar[n, a], n0, mkarray(n1), 0, n1)[n2] = copy(ar, n0, mkarray(n1), 0, n1)[n2]) |
n2 < n1, n < n0 ⊦ copy(ar[n, a], n0, mkarray(n1), 0, n1)[n2] = copy(ar, n0, mkarray(n1), 0, n1)[n2]
Used simplifier rules: size-copy: ⊦ # copy(ar, m, ar0, m0, n) = # ar0;% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ # mkarray(n) = n; (s)