rw [break_into_words_closed_form]
α : Type
is_decent : List α → Prop
a : Stream' α
hinit : all_prefixes is_decent a
hnot : ∀ (n : ℕ), ∃ k, 0 < k ∧ all_prefixes is_decent (Stream'.drop (n + k) a)
⊢ Stream'.All is_decent (break_into_words (fun i => ((choose_decent_words is_decent a hinit hnot).get i).length) a)
α : Type
is_decent : List α → Prop
a : Stream' α
hinit : all_prefixes is_decent a
hnot : ∀ (n : ℕ), ∃ k, 0 < k ∧ all_prefixes is_decent (Stream'.drop (n + k) a)
⊢ Stream'.All is_decent fun i =>
    Stream'.take ((choose_decent_words is_decent a hinit hnot).get i).length
      (Stream'.drop (∑ j ∈ Finset.range i, ((choose_decent_words is_decent a hinit hnot).get j).length) a)