Skip to content

Commit

Permalink
chore: fix names for String lemmas (#13525)
Browse files Browse the repository at this point in the history
  • Loading branch information
semorrison committed Jun 5, 2024
1 parent 3b9aaf4 commit c1e640b
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 18 deletions.
36 changes: 23 additions & 13 deletions Mathlib/Data/String/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -120,18 +120,22 @@ theorem toList_inj {s₁ s₂ : String} : s₁.toList = s₂.toList ↔ s₁ = s
⟨congr_arg mk, congr_arg toList⟩
#align string.to_list_inj String.toList_inj

theorem nil_asString_eq_empty : [].asString = "" :=
theorem asString_nil : [].asString = "" :=
rfl
#align string.nil_as_string_eq_empty String.nil_asString_eq_empty
#align string.nil_as_string_eq_empty String.asString_nil

@[deprecated (since := "2024-06-04")] alias nil_asString_eq_empty := asString_nil

@[simp]
theorem toList_empty : "".toList = [] :=
rfl
#align string.to_list_empty String.toList_empty

theorem asString_inv_toList (s : String) : s.toList.asString = s :=
theorem asString_toList (s : String) : s.toList.asString = s :=
rfl
#align string.as_string_inv_to_list String.asString_inv_toList
#align string.as_string_inv_to_list String.asString_toList

@[deprecated (since := "2024-06-04")] alias asString_inv_toList := asString_toList

#align string.to_list_singleton String.data_singleton

Expand Down Expand Up @@ -175,26 +179,32 @@ end String

open String

theorem List.toList_inv_asString (l : List Char) : l.asString.toList = l :=
namespace List

theorem toList_asString (l : List Char) : l.asString.toList = l :=
rfl
#align list.to_list_inv_as_string List.toList_inv_asString
#align list.to_list_inv_as_string List.toList_asString

@[deprecated (since := "2024-06-04")] alias toList_inv_asString := toList_asString

@[simp]
theorem List.length_asString (l : List Char) : l.asString.length = l.length :=
theorem length_asString (l : List Char) : l.asString.length = l.length :=
rfl
#align list.length_as_string List.length_asString

@[simp]
theorem List.asString_inj {l l' : List Char} : l.asString = l'.asString ↔ l = l' :=
fun h ↦ by rw [← toList_inv_asString l, ← toList_inv_asString l', toList_inj, h],
theorem asString_inj {l l' : List Char} : l.asString = l'.asString ↔ l = l' :=
fun h ↦ by rw [← toList_asString l, ← toList_asString l', toList_inj, h],
fun h ↦ h ▸ rfl⟩
#align list.as_string_inj List.asString_inj

theorem asString_eq {l : List Char} {s : String} : l.asString = s ↔ l = s.toList := by
rw [← asString_toList s, asString_inj, asString_toList s]
#align list.as_string_eq List.asString_eq

end List

@[simp]
theorem String.length_data (s : String) : s.data.length = s.length :=
rfl
#align string.length_to_list String.length_data

theorem List.asString_eq {l : List Char} {s : String} : l.asString = s ↔ l = s.toList := by
rw [← asString_inv_toList s, asString_inj, asString_inv_toList s]
#align list.as_string_eq List.asString_eq
8 changes: 3 additions & 5 deletions Mathlib/Data/String/Defs.lean
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Simon Hudon, Keeley Hoek, Floris van Doorn, Chris Bailey
-/
import Batteries.Data.List.Basic
import Batteries.Data.String.Basic
import Mathlib.Mathport.Rename

#align_import data.string.defs from "leanprover-community/mathlib"@"e7131068d9696deec51e6cd7668b6d9ac69af6a4"
Expand Down Expand Up @@ -53,11 +54,8 @@ def mapTokens (c : Char) (f : String → String) : String → String :=
intercalate (singleton c) ∘ List.map f ∘ (·.split (· = c))
#align string.map_tokens String.mapTokens

/-- `getRest s t` returns `some r` if `s = t ++ r`.
If `t` is not a prefix of `s`, it returns `none`. -/
def getRest (s t : String) : Option String :=
List.asString <$> s.toList.getRest t.toList
#align string.get_rest String.getRest
@[deprecated (since := "2024-06-04")] alias getRest := dropPrefix?
#align string.get_rest String.dropPrefix?

#align string.popn String.drop

Expand Down

0 comments on commit c1e640b

Please sign in to comment.