@@ -515,6 +515,8 @@ theorem extract_of_valid (l m r : List Char) :
515515 Pos.Raw.extract.go₁_append_right _ _ _ _ _ (by rfl)]
516516 apply Pos.Raw.extract.go₂_append_left; apply Nat.add_comm
517517
518+ -- Commented out as failing on nightly-2025-11-20.
519+ /-
518520theorem splitAux_of_valid (p l m r acc) :
519521 splitAux (ofList (l ++ m ++ r)) p ⟨utf8Len l⟩ ⟨utf8Len l + utf8Len m⟩ acc =
520522 acc.reverse ++ (List.splitOnP.go p r m.reverse).map ofList := by
@@ -542,10 +544,11 @@ theorem splitToList_of_valid (s p) : splitToList s p = (List.splitOnP p s.toList
542544@[deprecated splitToList_of_valid (since := "2025-10-18")]
543545theorem split_of_valid (s p) : splitToList s p = (List.splitOnP p s.toList).map ofList :=
544546 splitToList_of_valid s p
547+ -/
545548
546549-- TODO: splitOn
547550
548- @[simp] theorem toString_toSubstring (s : String) : s.toSubstring .toString = s :=
551+ @[simp] theorem toString_toSubstring (s : String) : s.toRawSubstring .toString = s :=
549552 extract_zero_rawEndPos _
550553
551554attribute [simp] toSubstring'
@@ -767,17 +770,19 @@ end Legacy.Iterator
767770
768771@[nolint unusedHavesSuffices] -- false positive from unfolding String.offsetOfPosAux
769772theorem offsetOfPosAux_of_valid : ∀ l m r n,
770- offsetOfPosAux (ofList (l ++ m ++ r)) ⟨utf8Len l + utf8Len m⟩ ⟨utf8Len l⟩ n = n + m.length
771- | l, [], r, n => by unfold offsetOfPosAux; simp
773+ String.Pos.Raw.offsetOfPosAux (ofList (l ++ m ++ r)) ⟨utf8Len l + utf8Len m⟩ ⟨utf8Len l⟩ n =
774+ n + m.length
775+ | l, [], r, n => by unfold String.Pos.Raw.offsetOfPosAux; simp
772776 | l, c::m, r, n => by
773- unfold offsetOfPosAux
777+ unfold String.Pos.Raw. offsetOfPosAux
774778 rw [if_neg (by exact Nat.not_le.2 (Nat.lt_add_of_pos_right add_utf8Size_pos))]
775779 simp only [List.append_assoc, atEnd_of_valid l (c::m++r)]
776780 simp only [List.cons_append, utf8Len_cons, next_of_valid l c (m ++ r)]
777781 simpa [← Nat.add_assoc, Nat.add_right_comm] using
778782 offsetOfPosAux_of_valid (l++[c]) m r (n + 1 )
779783
780- theorem offsetOfPos_of_valid (l r) : offsetOfPos (ofList (l ++ r)) ⟨utf8Len l⟩ = l.length := by
784+ theorem offsetOfPos_of_valid (l r) :
785+ String.Pos.Raw.offsetOfPos (ofList (l ++ r)) ⟨utf8Len l⟩ = l.length := by
781786 simpa using offsetOfPosAux_of_valid [] l r 0
782787
783788@[nolint unusedHavesSuffices] -- false positive from unfolding String.foldlAux
@@ -1239,32 +1244,34 @@ end Substring.Raw
12391244
12401245namespace String
12411246
1242- theorem drop_eq (s : String) (n : Nat) : s .drop n = ofList (s.toList.drop n) :=
1247+ theorem drop_eq (s : String) (n : Nat) : Legacy .drop s n = ofList (s.toList.drop n) :=
12431248 (s.validFor_toSubstring.drop n).toString
12441249
1245- @[simp] theorem toList_drop (s : String) (n : Nat) : (s.drop n).toList = s.toList.drop n := by
1250+ @[simp] theorem toList_drop (s : String) (n : Nat) :
1251+ (Legacy.drop s n).toList = s.toList.drop n := by
12461252 simp [drop_eq]
12471253
1248- @[simp] theorem drop_empty {n : Nat} : " " .drop n = " " := by simp [drop_eq, List.drop_nil]
1254+ @[simp] theorem drop_empty {n : Nat} : Legacy .drop " " n = " " := by simp [drop_eq, List.drop_nil]
12491255
1250- theorem take_eq (s : String) (n : Nat) : s .take n = ofList (s.toList.take n) :=
1256+ theorem take_eq (s : String) (n : Nat) : Legacy .take s n = ofList (s.toList.take n) :=
12511257 (s.validFor_toSubstring.take n).toString
12521258
1253- @[simp] theorem toList_take (s : String) (n : Nat) : (s.take n).toList = s.toList.take n := by
1259+ @[simp] theorem toList_take (s : String) (n : Nat) :
1260+ (Legacy.take s n).toList = s.toList.take n := by
12541261 simp [take_eq]
12551262
12561263theorem takeWhile_eq (p : Char → Bool) (s : String) :
1257- s .takeWhile p = ofList (s.toList.takeWhile p) :=
1264+ Legacy .takeWhile s p = ofList (s.toList.takeWhile p) :=
12581265 (s.validFor_toSubstring.takeWhile p).toString
12591266
12601267@[simp] theorem toList_takeWhile (p : Char → Bool) (s : String) :
1261- (s .takeWhile p).toList = s.toList.takeWhile p := by simp [takeWhile_eq]
1268+ (Legacy .takeWhile s p).toList = s.toList.takeWhile p := by simp [takeWhile_eq]
12621269
12631270theorem dropWhile_eq (p : Char → Bool) (s : String) :
1264- s .dropWhile p = ofList (s.toList.dropWhile p) :=
1271+ Legacy .dropWhile s p = ofList (s.toList.dropWhile p) :=
12651272 (s.validFor_toSubstring.dropWhile p).toString
12661273
12671274@[simp] theorem toList_dropWhile (p : Char → Bool) (s : String) :
1268- (s .dropWhile p).toList = s.toList.dropWhile p := by simp [dropWhile_eq]
1275+ (Legacy .dropWhile s p).toList = s.toList.dropWhile p := by simp [dropWhile_eq]
12691276
12701277end String
0 commit comments