simp only [pmap_eq_nat_fold'_push]
α : Type u
β : Type v
p : α → Prop
f : (a : α) → p a → β
as : Array α
h : ∀ (i : Nat) (hi : i < size as), p as[i]
i : Nat
hi : i < size (pmap f as h)
⊢ (pmap f as h)[i] = f as[i] (_ : p as[i])
α : Type u
β : Type v
p : α → Prop
f : (a : α) → p a → β
as : Array α
h : ∀ (i : Nat) (hi : i < size as), p as[i]
i : Nat
hi : i < size (pmap f as h)
⊢ (Nat.fold' (size as) (fun i x => push x (f as[i.val] (_ : p as[i.val]))) #[])[i] = f as[i] (_ : p as[i])