l r : List Char
it : Iterator
h : ValidFor l r it
⊢ ValidFor (List.reverse r ++ l) [] { s := { data := List.reverseAux l r }, i := { byteIdx := utf8Len l + utf8Len r } }
l r : List Char
it : Iterator
h : ValidFor l r it
⊢ ValidFor (List.reverse r ++ l) [] (Iterator.toEnd it)
simp [Iterator.toEnd, h.toString]
no goals
l r : List Char
it : Iterator
h : ValidFor l r it
⊢ ValidFor (List.reverse r ++ l) [] { s := { data := List.reverseAux l r }, i := { byteIdx := utf8Len l + utf8Len r } }
exact .of_eq _ (by simp [List.reverseAux_eq]) (by simp [Nat.add_comm])
no goals
l r : List Char
it : Iterator
h : ValidFor l r it
⊢ { s := { data := List.reverseAux l r }, i := { byteIdx := utf8Len l + utf8Len r } }.s.data =
    List.reverseAux (List.reverse r ++ l) []
simp [List.reverseAux_eq]
no goals
l r : List Char
it : Iterator
h : ValidFor l r it
⊢ { s := { data := List.reverseAux l r }, i := { byteIdx := utf8Len l + utf8Len r } }.i.byteIdx =
    utf8Len (List.reverse r ++ l)
simp [Nat.add_comm]