| n2 < n0 + n1, n2 < # mkarray(n0 + n1) ⊦ (n2 < 0 ∨ 0 + n0 + n1 ≤ n2 ⊃ mkarray(n0 + n1)[n2];ar[n2 + n - 0]) = (copy(ar, n, mkarray(n0), 0, n0) + copy(ar, n + n0, mkarray(n1), 0, n1))[n2] |
n2 < n0 + n1 ⊦ ar[n2 + n] = (copy(ar, n, mkarray(n0), 0, n0) + copy(ar, n + n0, mkarray(n1), 0, n1))[n2]
Used simplifier rules: ⊦ # mkarray(n) = n; (s)% ⊦ m - 0 = m; (s)% ⊦ m < n → (n ≤ m ↔ false); (s)%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ n + 0 = n; (s)% ⊦ ¬ m < 0; (s)