case h
α : Type u_1
⊢ tails = tailsTR
⊢ @tails = @tailsTR
funext α
case h
α : Type u_1
H : ∀ (l : List α) (acc : Array (List α)), tailsTR.go l acc = Array.toList acc ++ tails l
⊢ tails = tailsTR
case h
α : Type u_1
⊢ tails = tailsTR
have H (l : List α) : ∀ acc, tailsTR.go l acc = acc.toList ++ tails l := by
  induction l <;> simp [*, tailsTR.go]
no goals
case h
α : Type u_1
H : ∀ (l : List α) (acc : Array (List α)), tailsTR.go l acc = Array.toList acc ++ tails l
⊢ tails = tailsTR
simp [tailsTR, H]
no goals
α : Type u_1
l : List α
⊢ ∀ (acc : Array (List α)), tailsTR.go l acc = Array.toList acc ++ tails l
induction l <;> simp [*, tailsTR.go]