Documentation

Mathlib.Data.List.SplitLengths

Splitting a list to chunks of specified lengths #

This file defines splitting a list to chunks of given lengths, and some proofs about that.

def List.splitLengths {α : Type u_1} :
List ā„• → List α → List (List α)

Split a list to chunks of given lengths.

Equations
    Instances For
      @[simp]
      theorem List.length_splitLengths {α : Type u_1} (l : List α) (sz : List ā„•) :
      @[simp]
      theorem List.splitLengths_nil {α : Type u_1} (l : List α) :
      @[simp]
      theorem List.splitLengths_cons {α : Type u_1} (l : List α) (sz : List ā„•) (n : ā„•) :
      (n :: sz).splitLengths l = take n l :: sz.splitLengths (drop n l)
      theorem List.take_splitLength {α : Type u_1} (l : List α) (sz : List ā„•) (i : ā„•) :
      take i (sz.splitLengths l) = (take i sz).splitLengths l
      theorem List.length_splitLengths_getElem_le {α : Type u_1} (l : List α) (sz : List ā„•) {i : ā„•} {hi : i < (sz.splitLengths l).length} :
      theorem List.flatten_splitLengths {α : Type u_1} (l : List α) (sz : List ā„•) (h : l.length ≤ sz.sum) :
      theorem List.map_splitLengths_length {α : Type u_1} (l : List α) (sz : List ā„•) (h : sz.sum ≤ l.length) :
      theorem List.length_splitLengths_getElem_eq {α : Type u_1} (l : List α) (sz : List ā„•) {i : ā„•} (hi : i < sz.length) (h : (take (i + 1) sz).sum ≤ l.length) :
      theorem List.splitLengths_length_getElem {α : Type u_2} (l : List α) (sz : List ā„•) (h : sz.sum ≤ l.length) (i : ā„•) (hi : i < (sz.splitLengths l).length) :
      theorem List.length_mem_splitLengths {α : Type u_2} (l : List α) (sz : List ā„•) (b : ā„•) (h : āˆ€ n ∈ sz, n ≤ b) (lā‚‚ : List α) :
      lā‚‚ ∈ sz.splitLengths l → lā‚‚.length ≤ b