| n < # ar0 + # ar1 ⊦ fill(ar0 + ar1, a, n0 + # ar0, m)[n] = (ar0 + fill(ar1, a, n0, m))[n] |
⊦ n < # ar → fill(ar, a, m0, m1)[n] = (m0 ≤ n ∧ n < m0 + m1 ⊃ a;ar[n])
⊦ #(ar0 + ar1) = # ar0 + # ar1
⊦ (ar + ar0) + ar1 = ar + ar0 + ar1
n < # ar0 + # ar1, n < #(ar0 + ar1) ⊦ (n0 + # ar0 ≤ n ∧ n < (n0 + # ar0) + m ⊃ a;(ar0 + ar1)[n]) = (ar0 + fill(ar1, a, n0, m))[n]
Used simplifier rules: append-len: ⊦ #(ar0 + ar1) = # ar0 + # ar1;%append-a: ⊦ (ar + ar0) + ar1 = ar + ar0 + ar1;% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m < n → (n ≤ m ↔ false); (s) Used terms: n, m, n0 + # ar0, a, ar0 + ar1