| n1 < # ar1, n ≤ # ar0, n0 ≤ # ar1, m + n ≤ # ar, m0 + n0 ≤ m ⊦ (n0 ≤ n1 ⊃ ar1[n1];copy(ar0, 0, ar, m, n)[n1 + m0]) = (n0 ≤ n1 ⊃ ar1[n1];ar[n1 + m0]), n0 ≤ n1 |
n1 < n0, n1 < # ar1, n ≤ # ar0, n0 ≤ # ar1, m + n ≤ # ar, m0 + n0 ≤ m ⊦ copy(ar0, 0, ar, m, n)[n1 + m0] = ar[n1 + m0]
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m ≤ n ↔ ¬ n < m; (ss)