∀ {α : Type u_1} {p : α → Bool} (head : α) (tail : List α),
  (∀ {i : ℕ} (s : ℕ) (h : i < (List.filter p tail).length),
      (List.filter p tail)[i] = tail[(List.findIdxs p tail s)[i] - s]) →
    ∀ {i : ℕ} (s : ℕ) (h : i < (List.filter p (head :: tail)).length),
      (List.findIdxs p (head :: tail) s)[i] - s + 1 ≤ (head :: tail).length →
        ¬p head = true → 0 < (List.findIdxs p (head :: tail) s).length