cases i <;> dsimp
case cons
α : Type u
β : Type v
p : α → Prop
f : (a : α) → p a → β
a : α
l : List α
IH :
  ∀ (h : ∀ (a : α), a ∈ l → p a) (i : Fin (length (pmap f l h))),
    get (pmap f l h) i =
      f (get l (Fin.cast (_ : length (pmap f l h) = length l) i))
        (_ : p (get l (Fin.cast (_ : length (pmap f l h) = length l) i)))
h : ∀ (a_1 : α), a_1 ∈ a :: l → p a_1
i✝ : Fin (length (pmap f (a :: l) h))
i : Nat
hi : i < length (pmap f (a :: l) h)
⊢ get (pmap f (a :: l) h) { val := i, isLt := hi } =
    f (get (a :: l) (Fin.cast (_ : length (pmap f (a :: l) h) = length (a :: l)) { val := i, isLt := hi }))
      (_ : p (get (a :: l) (Fin.cast (_ : length (pmap f (a :: l) h) = length (a :: l)) { val := i, isLt := hi })))
case cons.zero
α : Type u
β : Type v
p : α → Prop
f : (a : α) → p a → β
a : α
l : List α
IH :
  ∀ (h : ∀ (a : α), a ∈ l → p a) (i : Fin (length (pmap f l h))),
    get (pmap f l h) i =
      f (get l (Fin.cast (_ : length (pmap f l h) = length l) i))
        (_ : p (get l (Fin.cast (_ : length (pmap f l h) = length l) i)))
h : ∀ (a_1 : α), a_1 ∈ a :: l → p a_1
i : Fin (length (pmap f (a :: l) h))
hi : Nat.zero < length (pmap f (a :: l) h)
⊢ f a (_ : p a) = f a (_ : p a)

case cons.succ
α : Type u
β : Type v
p : α → Prop
f : (a : α) → p a → β
a : α
l : List α
IH :
  ∀ (h : ∀ (a : α), a ∈ l → p a) (i : Fin (length (pmap f l h))),
    get (pmap f l h) i =
      f (get l (Fin.cast (_ : length (pmap f l h) = length l) i))
        (_ : p (get l (Fin.cast (_ : length (pmap f l h) = length l) i)))
h : ∀ (a_1 : α), a_1 ∈ a :: l → p a_1
i : Fin (length (pmap f (a :: l) h))
n✝ : Nat
hi : Nat.succ n✝ < length (pmap f (a :: l) h)
⊢ get (pmap f l (_ : ∀ (x : α), x ∈ l → p x))
      { val := n✝, isLt := (_ : Nat.succ n✝ ≤ length (pmap f l (_ : ∀ (x : α), x ∈ l → p x))) } =
    f (get l { val := n✝, isLt := (_ : Nat.succ n✝ ≤ length l) })
      (_ : p (get l { val := n✝, isLt := (_ : Nat.succ n✝ ≤ length l) }))