| 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]), n0 = 0 |
n < n0, n2 < n1 ⊦ n0 = 0, copy(ar[n, a], n0, mkarray(n1), 0, n1)[n2] = copy(ar, n0, mkarray(n1), 0, n1)[n2], n1 = 0
Used simplifier rules: size-copy: ⊦ # copy(ar, m, ar0, m0, n) = # ar0;%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%Size-mkarray: ⊦ # mkarray(n) = n; from specification array