| n < # ar0 + # ar1, n < # ar0 ⊦ (n0 + # ar0 ≤ n ∧ n < (n0 + # ar0) + m ⊃ a;(ar0 + ar1)[n]) = ar0[n] |
⊦ n < # ar0 → (ar0 + ar1)[n] = ar0[n]
⊦ (ar + ar0) + ar1 = ar + ar0 + ar1
n < # ar0 + # ar1, n < # ar0 ⊦ (n0 + # ar0 ≤ n ∧ n < (n0 + # ar0) + m ⊃ a;ar0[n]) = ar0[n]
Used simplifier rules: append-at1: ⊦ n < # ar0 → (ar0 + ar1)[n] = ar0[n];%append-a: ⊦ (ar + ar0) + ar1 = ar + ar0 + ar1;% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic