l m r : List Char
x✝ : Substring
h : ValidFor l m r x✝
⊢ Iterator.ValidFor (List.reverse l) (m ++ r) { s := x✝.str, i := x✝.startPos }
l m r : List Char
x✝ : Substring
h : ValidFor l m r x✝
⊢ Iterator.ValidFor (List.reverse l) (m ++ r) (Substring.toIterator x✝)
simp [Substring.toIterator]
no goals
l m r : List Char
x✝ : Substring
h : ValidFor l m r x✝
⊢ Iterator.ValidFor (List.reverse l) (m ++ r) { s := x✝.str, i := x✝.startPos }
exact .of_eq _ (by simp [h.str, List.reverseAux_eq]) (by simp [h.startPos])
no goals
l m r : List Char
x✝ : Substring
h : ValidFor l m r x✝
⊢ { s := x✝.str, i := x✝.startPos }.s.data = List.reverseAux (List.reverse l) (m ++ r)
simp [h.str, List.reverseAux_eq]
no goals
l m r : List Char
x✝ : Substring
h : ValidFor l m r x✝
⊢ { s := x✝.str, i := x✝.startPos }.i.byteIdx = utf8Len (List.reverse l)
simp [h.startPos]