rw [unsublist, dif_pos hx] at h
case head.mpr
α : Type u_1
p✝ : α → Prop
inst✝¹ : DecidablePred p✝
p : α → Prop
inst✝ : DecidablePred p
x : α
xs : List α
ih : ∀ (i : xs.Index) (hi : p i.val) (j : (List.sublist p xs).Index), sublist p i hi = j ↔ i = unsublist p j
j : (List.sublist p (x :: xs)).Index
hx : p x
hi : p head.val
h : head = unsublist p j
⊢ ⋯ ▸ head = j
case head.mpr
α : Type u_1
p✝ : α → Prop
inst✝¹ : DecidablePred p✝
p : α → Prop
inst✝ : DecidablePred p
x : α
xs : List α
ih : ∀ (i : xs.Index) (hi : p i.val) (j : (List.sublist p xs).Index), sublist p i hi = j ↔ i = unsublist p j
j : (List.sublist p (x :: xs)).Index
hx : p x
hi : p head.val
h :
  head =
    let_fun this := ⋯;
    match ⋯ ▸ j with
    | head => head
    | i.tail => (unsublist p i).tail
⊢ ⋯ ▸ head = j