| nx < # ar, n < # ar ⊦ ar.mapIndices(nx, f)[n] = (n ∈ nx ⊃ f(ar[n]);ar[n]), dups(nx) |
⊦ ar.mapIndices([], f) = ar
n < # ar, m + nx0 < # ar, ∀ ar, n, f. nx0 < # ar ∧ n < # ar → ar.mapIndices(nx0, f)[n] = (n ∈ nx0 ⊃ f(ar[n]);ar[n]) ∨ dups(nx0) ⊦ ar.mapIndices(m + nx0, f)[n] = (n ∈ m + nx0 ⊃ f(ar[n]);ar[n]), dups(m + nx0)
Used simplifier rules: mapindices-base: ⊦ ar.mapIndices([], f) = ar;%nat-list freely generated by [], +;;% ⊦ ¬ n ∈ []; (s)