Documentation

Mathlib.Data.String.Basic

Strings #

Supplementary theorems about the String type.

@[irreducible]
def String.ltb (s₁ sβ‚‚ : Legacy.Iterator) :

< on string iterators. This coincides with < on strings as lists.

Equations
    Instances For
      instance String.LT' :

      This overrides an instance in core Lean.

      Equations

        This instance has a prime to avoid the name of the corresponding instance in core Lean.

        Equations
          @[irreducible]
          def String.ltb.inductionOn {motive : Legacy.Iterator β†’ Legacy.Iterator β†’ Sort u} (it₁ itβ‚‚ : Legacy.Iterator) (ind : (s₁ sβ‚‚ : String) β†’ (i₁ iβ‚‚ : Pos.Raw) β†’ { s := sβ‚‚, i := iβ‚‚ }.hasNext = true β†’ { s := s₁, i := i₁ }.hasNext = true β†’ Pos.Raw.get s₁ i₁ = Pos.Raw.get sβ‚‚ iβ‚‚ β†’ motive { s := s₁, i := i₁ }.next { s := sβ‚‚, i := iβ‚‚ }.next β†’ motive { s := s₁, i := i₁ } { s := sβ‚‚, i := iβ‚‚ }) (eq : (s₁ sβ‚‚ : String) β†’ (i₁ iβ‚‚ : Pos.Raw) β†’ { s := sβ‚‚, i := iβ‚‚ }.hasNext = true β†’ { s := s₁, i := i₁ }.hasNext = true β†’ Β¬Pos.Raw.get s₁ i₁ = Pos.Raw.get sβ‚‚ iβ‚‚ β†’ motive { s := s₁, i := i₁ } { s := sβ‚‚, i := iβ‚‚ }) (base₁ : (s₁ sβ‚‚ : String) β†’ (i₁ iβ‚‚ : Pos.Raw) β†’ { s := sβ‚‚, i := iβ‚‚ }.hasNext = true β†’ Β¬{ s := s₁, i := i₁ }.hasNext = true β†’ motive { s := s₁, i := i₁ } { s := sβ‚‚, i := iβ‚‚ }) (baseβ‚‚ : (s₁ sβ‚‚ : String) β†’ (i₁ iβ‚‚ : Pos.Raw) β†’ Β¬{ s := sβ‚‚, i := iβ‚‚ }.hasNext = true β†’ motive { s := s₁, i := i₁ } { s := sβ‚‚, i := iβ‚‚ }) :
          motive it₁ itβ‚‚

          Induction on String.ltb.

          Equations
            Instances For
              theorem String.ltb_cons_addChar' (c : Char) (s₁ sβ‚‚ : Legacy.Iterator) :
              ltb { s := ofList (c :: s₁.s.toList), i := s₁.i + c } { s := ofList (c :: sβ‚‚.s.toList), i := sβ‚‚.i + c } = ltb s₁ sβ‚‚
              theorem String.ltb_cons_addChar (c : Char) (cs₁ csβ‚‚ : List Char) (i₁ iβ‚‚ : Pos.Raw) :
              ltb { s := ofList (c :: cs₁), i := i₁ + c } { s := ofList (c :: csβ‚‚), i := iβ‚‚ + c } = ltb { s := ofList cs₁, i := i₁ } { s := ofList csβ‚‚, i := iβ‚‚ }
              @[simp]
              theorem String.lt_iff_toList_lt {s₁ sβ‚‚ : String} :
              s₁ < sβ‚‚ ↔ s₁.toList < sβ‚‚.toList
              @[simp]
              theorem String.le_iff_toList_le {s₁ sβ‚‚ : String} :
              s₁ ≀ sβ‚‚ ↔ s₁.toList ≀ sβ‚‚.toList
              @[deprecated String.ofList_nil (since := "2025-10-31")]
              @[deprecated String.ofList_toList (since := "2025-10-31")]
              @[deprecated String.toList_ofList (since := "2025-10-31")]
              @[deprecated String.ofList_eq (since := "2025-10-31")]