∀ {α : Type u_1} {p : α → Bool} (head : α) (tail : List α),
  (∀ {n : ℕ}, n < List.countP p tail → List.countPBefore p tail (List.findIdxNth p tail n) = n) →
    ∀ {n : ℕ},
      n + 1 ≤ List.countP p (head :: tail) →
        ¬n = 0 →
          p head = true →
            List.findIdxNth p tail (List.countPBefore p (head :: tail).tail (List.findIdxNth p tail (n - 1))) + 1 <
              (head :: tail).length