| n < # ar, m ≤ # ar ⊦ ar.mapIndices(ar.indicesWhere(φ, m), f)[n] = (n < m ∧ φ(ar[n]) ⊃ f(ar[n]);ar[n]) |
⊦ valid-indices(ar, nx) ∧ ¬ dups(nx) ∧ n < # ar → ar.mapIndices(nx, f)[n] = (n ∈ nx ⊃ f(ar[n]);ar[n])
n < # ar, m ≤ # ar ⊦ ar.mapIndices(ar.indicesWhere(φ, m), f)[n] = (n < m ∧ φ(ar[n]) ⊃ f(ar[n]);ar[n]), valid-indices(ar, ar.indicesWhere(φ, m)) ∧ ¬ dups(ar.indicesWhere(φ, m)) ∧ n < # ar
n < # ar, valid-indices(ar, ar.indicesWhere(φ, m)), m ≤ # ar ⊦ (n ∈ ar.indicesWhere(φ, m) ⊃ f(ar[n]);ar[n]) = (n < m ∧ φ(ar[n]) ⊃ f(ar[n]);ar[n]), dups(ar.indicesWhere(φ, m))
Used terms: n, f, ar.indicesWhere(φ, m), ar