∀ (motive : (blocks : List ℕ) → (∀ {i : ℕ}, i ∈ blocks → 0 < i) → Sort u_1) (blocks_pos : ∀ {i : ℕ}, i ∈ [] → 0 < i)
  (h_1 : (blocks_pos : ∀ {i : ℕ}, i ∈ [] → 0 < i) → motive [] blocks_pos)
  (h_2 : (tail : List ℕ) → (blocks_pos : ∀ {i : ℕ}, i ∈ 0 :: tail → 0 < i) → motive (0 :: tail) blocks_pos)
  (h_3 : (k : ℕ) → (l : List ℕ) → (blocks_pos : ∀ {i : ℕ}, i ∈ (k + 1) :: l → 0 < i) → motive (k.succ :: l) blocks_pos),
  (match [], blocks_pos with
    | [], blocks_pos => h_1 blocks_pos
    | 0 :: tail, blocks_pos => h_2 tail blocks_pos
    | k.succ :: l, blocks_pos => h_3 k l blocks_pos) =
    h_1 blocks_pos