{α : Type u_1} →
  (motive : List α → ℕ → Sort u_2) →
    (x : List α) →
      (x_1 : ℕ) →
        ((x : ℕ) → motive [] x) →
          ((head : α) → (as : List α) → motive (head :: as) 0) →
            ((a : α) → (as : List α) → (n : ℕ) → motive (a :: as) n.succ) → motive x x_1