Documentation

Regex.Data.String

Equations
Instances For
    theorem String.Slice.Pos.le_of_not_lt {s : Slice} {p q : s.Pos} :
    ¬q < pp q
    theorem String.Slice.Pos.ne_endPos_of_lt {s : Slice} {p q : s.Pos} :
    p < qp s.endPos
    theorem String.Slice.Pos.next_le_of_lt {s : Slice} {p q : s.Pos} {h : p s.endPos} :
    p < qp.next h q
    theorem String.ValidPos.next_le_of_lt {s : String} {p q : s.ValidPos} {h : p s.endValidPos} :
    p < qp.next h q
    Equations
    Instances For
      Equations
      Instances For
        @[irreducible, specialize #[]]
        def String.ValidPos.find {s : String} (pos : s.ValidPos) (p : CharBool) :
        Equations
        Instances For
          theorem String.ValidPos.ne_endValidPos_of_lt {s : String} {pos pos' : s.ValidPos} (lt : pos < pos') :
          @[simp]
          theorem String.ValidPos.ne_next {s : String} {pos : s.ValidPos} {ne : pos s.endValidPos} :
          pos pos.next ne
          @[irreducible]
          def String.ValidPos.posRevInduction {s : String} {motive : s.ValidPosSort u} (endValidPos : motive s.endValidPos) (next : (p : s.ValidPos) → (h : p s.endValidPos) → motive (p.next h)motive p) (p : s.ValidPos) :
          motive p
          Equations
          Instances For
            theorem String.ValidPos.splits_of_next {s l r : String} {p : s.ValidPos} {h : p s.endValidPos} (sp : (p.next h).Splits (l ++ singleton (p.get h)) r) :
            p.Splits l (singleton (p.get h) ++ r)
            theorem String.ValidPos.splits_get_singleton {s l r : String} {c : Char} {p : s.ValidPos} (sp : p.Splits l (singleton c ++ r)) :
            p.get = c
            theorem String.ValidPos.lt_or_eq_of_le {s : String} {p p' : s.ValidPos} (le : p p') :
            p < p' p = p'
            theorem String.ValidPos.Splits.exists_eq_append_left_of_lt {s l r : String} {p p' : s.ValidPos} (sp : p.Splits l r) (lt : p' < p) :
            (l₁ : String), (l₂ : String), l = l₁ ++ l₂ p'.Splits l₁ (l₂ ++ r)
            theorem String.ValidPos.next_inj {s : String} {pos pos' : s.ValidPos} {h : pos s.endValidPos} {h' : pos' s.endValidPos} (eq : pos.next h = pos'.next h') :
            pos = pos'
            theorem String.ValidPos.lt_of_le_of_ne {s : String} {pos pos' : s.ValidPos} (le : pos pos') (ne : pos pos') :
            pos < pos'
            theorem String.ValidPos.le_of_lt_next {s : String} {pos pos' : s.ValidPos} {h' : pos' s.endValidPos} (lt : pos < pos'.next h') :
            pos pos'
            theorem String.ValidPos.le_or_eq_of_le_next {s : String} {pos pos' : s.ValidPos} {h' : pos' s.endValidPos} (le : pos pos'.next h') :
            pos pos' pos = pos'.next h'
            theorem String.ValidPos.le_next_iff {s : String} {pos pos' : s.ValidPos} {h' : pos' s.endValidPos} :
            pos pos'.next h' pos pos' pos = pos'.next h'
            theorem String.ValidPos.lt_next_iff {s : String} {pos pos' : s.ValidPos} {h' : pos' s.endValidPos} :
            pos < pos'.next h' pos pos'
            theorem String.ValidPos.le_iff_lt_or_eq {s : String} {pos pos' : s.ValidPos} :
            pos pos' pos < pos' pos = pos'
            theorem String.ValidPos.lt_next_iff_lt_or_eq {s : String} {pos pos' : s.ValidPos} (h' : pos' s.endValidPos) :
            pos < pos'.next h' pos < pos' pos = pos'
            Instances For
              theorem String.ValidPosPlusOne.ext {s : String} {x y : s.ValidPosPlusOne} (offset : x.offset = y.offset) :
              x = y
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def String.instDecidableEqValidPosPlusOne.decEq {s✝ : String} (x✝ x✝¹ : s✝.ValidPosPlusOne) :
                Decidable (x✝ = x✝¹)
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[match_pattern]
                  Equations
                  Instances For
                    @[match_pattern]
                    Equations
                    Instances For
                      def String.ValidPosPlusOne.rec' {s : String} {motive : s.ValidPosPlusOneSort u} (validPos : (p : s.ValidPos) → motive (validPos p)) (sentinel : motive (sentinel s)) (p : s.ValidPosPlusOne) :
                      motive p
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[inline]
                        Equations
                        Instances For
                          Equations
                          Instances For
                            Equations
                            Instances For
                              theorem String.ValidPosPlusOne.lt_iff {s : String} {p₁ p₂ : s.ValidPosPlusOne} :
                              p₁ < p₂ p₁.offset < p₂.offset
                              instance String.ValidPosPlusOne.instDecidableLt {s : String} (p₁ p₂ : s.ValidPosPlusOne) :
                              Decidable (p₁ < p₂)
                              Equations
                              @[simp]
                              Equations
                              Instances For
                                theorem String.ValidPosPlusOne.le_iff {s : String} {p₁ p₂ : s.ValidPosPlusOne} :
                                p₁ p₂ p₁.offset p₂.offset
                                @[simp]
                                theorem String.ValidPosPlusOne.validPos_le_validPos_iff {s : String} {p₁ p₂ : s.ValidPos} :
                                validPos p₁ validPos p₂ p₁ p₂
                                instance String.ValidPosPlusOne.instDecidableLe {s : String} (p₁ p₂ : s.ValidPosPlusOne) :
                                Decidable (p₁ p₂)
                                Equations
                                theorem String.ValidPosPlusOne.isValid_of_isValid_of_le {s : String} {p₁ p₂ : s.ValidPosPlusOne} (h : p₂.isValid = true) (le : p₁ p₂) :
                                theorem String.ValidPosPlusOne.validPos_inj {s : String} {p₁ p₂ : s.ValidPos} (h : validPos p₁ = validPos p₂) :
                                p₁ = p₂
                                Equations
                                Instances For
                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem String.ValidPosPlusOne.orElse_eq_or {s : String} {p₁ : s.ValidPosPlusOne} {p₂ : Units.ValidPosPlusOne} :
                                    p₁.orElse p₂ = p₁.or (p₂ ())
                                    @[simp]
                                    theorem String.ValidPosPlusOne.hOrElse_eq_orElse {s : String} {p₁ : s.ValidPosPlusOne} {p₂ : Units.ValidPosPlusOne} :
                                    (p₁ <|> p₂ ()) = p₁.orElse p₂
                                    @[simp]
                                    theorem String.ValidPosPlusOne.or_valid {s : String} {p₁ p₂ : s.ValidPosPlusOne} (h : p₁.isValid = true) :
                                    p₁.or p₂ = p₁
                                    @[simp]
                                    theorem String.ValidPosPlusOne.or_not_valid {s : String} {p₁ p₂ : s.ValidPosPlusOne} (h : ¬p₁.isValid = true) :
                                    p₁.or p₂ = p₂
                                    @[simp]
                                    theorem String.ValidPosPlusOne.sentinel_or {s : String} {p₁ p₂ : s.ValidPosPlusOne} (h : p₁ = sentinel s) :
                                    p₁.or p₂ = p₂
                                    @[simp]
                                    theorem String.ValidPosPlusOne.validPos_or {s : String} {p : s.ValidPos} {p₁ p₂ : s.ValidPosPlusOne} (h : p₁ = validPos p) :
                                    p₁.or p₂ = p₁
                                    @[simp]
                                    theorem String.ValidPosPlusOne.or_sentinel {s : String} {p₁ p₂ : s.ValidPosPlusOne} (h : p₂ = sentinel s) :
                                    p₁.or p₂ = p₁
                                    @[simp]