theorem String.Slice.skipPrefix?_eq_forwardPatternSkipPrefix? {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] {s : Slice} :
theorem String.Slice.startsWith_eq_forwardPatternStartsWith {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] {s : Slice} :
theorem String.Slice.dropPrefix?_eq_map_skipPrefix? {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] {s : Slice} :
theorem String.Slice.Pattern.Model.skipPrefix?_eq_some_iff {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pattern.Model.skipPrefix?_eq_none_iff {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.Slice.isSome_skipPrefix? {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] [Pattern.LawfulForwardPattern pat] {s : Slice} :
theorem String.Slice.Pattern.Model.startsWith_eq_false_iff {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.Pattern.Model.startsWith_iff {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.Slice.skipPrefix?_eq_none_iff {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] [Pattern.LawfulForwardPattern pat] {s : Slice} :
@[simp]
theorem String.Slice.dropPrefix?_eq_none_iff {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] [Pattern.LawfulForwardPattern pat] {s : Slice} :
theorem String.Slice.Pattern.Model.eq_append_of_dropPrefix?_eq_some {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s res : Slice} (h : s.dropPrefix? pat = some res) :
theorem String.Slice.Pos.skip?_eq_map_skipPrefix? {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.skip?_eq_some_iff {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} {pos res : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.skip?_eq_none_iff {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.skip?_eq_matchAt? {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} {pos : s.Pos} :
@[simp]
theorem String.Slice.skip?_startPos {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.Pos.skip?_cast {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) {pos : s.Pos} :
theorem String.Slice.Pos.skip?_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) {pos : s.Pos} :
theorem String.Slice.skipPrefix?_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
theorem String.Slice.startsWith_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
theorem String.Slice.dropPrefix?_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
theorem String.Slice.Pattern.Model.Pos.skipWhile_eq {ρ : Type} {pat : ρ} [PatternModel pat] [StrictPatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pos.skipWhile_cast {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) {pos : s.Pos} :
theorem String.Slice.Pos.skipWhile_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) {pos : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.skipWhile_eq_self {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} {pos : s.Pos} (h : ¬MatchesAt pat pos) :
theorem String.Slice.Pattern.Model.Pos.skipWhile_eq_iff {ρ : Type} (pat : ρ) [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} (startPos endPos : s.Pos) :
startPos.skipWhile pat = endPos ↔ IsLongestMatchAtChain pat startPos endPos ∧ (¬MatchesAt pat endPos ∨ IsLongestMatchAt pat endPos endPos)
theorem String.Slice.Pattern.Model.Pos.isLongestMatchAtChain_skipWhile {ρ : Type} (pat : ρ) [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} (pos : s.Pos) :
IsLongestMatchAtChain pat pos (pos.skipWhile pat)
theorem String.Slice.Pattern.Model.Pos.not_matchesAt_or_isLongestMatchAt_skipWhile {ρ : Type} (pat : ρ) [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} (pos : s.Pos) :
theorem String.Slice.Pattern.Model.Pos.not_matchesAt_skipWhile {ρ : Type} (pat : ρ) [PatternModel pat] [StrictPatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} (pos : s.Pos) :
theorem String.Slice.Pattern.Model.Pos.skipWhile_eq_self_iff {ρ : Type} {pat : ρ} [PatternModel pat] [StrictPatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.skipWhile_eq_self_iff_or {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} {pos : s.Pos} :
@[simp]
theorem String.Slice.Pos.le_skipWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.le_skipWhile_of_isLongestMatchAtChain {ρ : Type} (pat : ρ) [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} {startPos endPos : s.Pos} (h : IsLongestMatchAtChain pat startPos endPos) :
theorem String.Slice.skipPrefixWhile_eq_skipWhile_startPos {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] {s : Slice} :
@[simp]
theorem String.Slice.cast_skipPrefixWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
theorem String.Slice.Pattern.Model.skipPrefixWhile_eq_iff {ρ : Type} (pat : ρ) [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] (s : Slice) (res : s.Pos) :
s.skipPrefixWhile pat = res ↔ IsLongestMatchAtChain pat s.startPos res ∧ (¬MatchesAt pat res ∨ IsLongestMatchAt pat res res)
theorem String.Slice.Pattern.Model.isLongestMatchAtChain_skipPrefixWhile {ρ : Type} (pat : ρ) [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] (s : Slice) :
IsLongestMatchAtChain pat s.startPos (s.skipPrefixWhile pat)
theorem String.Slice.Pattern.Model.not_matchesAt_or_isLongestMatchAt_skipPrefixWhile {ρ : Type} (pat : ρ) [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] (s : Slice) :
¬MatchesAt pat (s.skipPrefixWhile pat) ∨ IsLongestMatchAt pat (s.skipPrefixWhile pat) (s.skipPrefixWhile pat)
theorem String.Slice.Pattern.Model.not_matchesAt_skipPrefixWhile {ρ : Type} (pat : ρ) [PatternModel pat] [StrictPatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] (s : Slice) :
¬MatchesAt pat (s.skipPrefixWhile pat)
theorem String.Slice.skipPrefixWhile_eq_startPos {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
s.startsWith pat = false → s.skipPrefixWhile pat = s.startPos
@[simp]
theorem String.Slice.skipPrefixWhile_eq_startPos_iff {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.Model.StrictPatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.Pattern.Model.skipPrefixWhile_eq_startPos_iff_or {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.dropWhile_eq_sliceFrom_skipPrefixWhile {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] {s : Slice} :
theorem String.Slice.dropWhile_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
@[simp]
theorem String.Slice.startsWith_dropWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.Model.StrictPatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.dropWhile_eq_self {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} (h : s.startsWith pat = false) :
@[simp]
theorem String.Slice.dropWhile_eq_self_iff {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.Model.StrictPatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.Pattern.Model.dropWhile_eq_self_iff_or {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.takeWhile_eq_sliceTo_skipPrefixWhile {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] {s : Slice} :
@[simp]
theorem String.Slice.takeWhile_append_dropWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.LawfulForwardPattern pat] {s : Slice} :
theorem String.Slice.takeWhile_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
theorem String.Slice.isEmpty_takeWhile_eq_true {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} (h : s.startsWith pat = false) :
@[simp]
theorem String.Slice.isEmpty_takeWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.Model.StrictPatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.all_eq_skipPrefixWhile_beq {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] {s : Slice} :
theorem String.Slice.Pattern.Model.all_eq_true_iff {ρ : Type} {pat : ρ} [PatternModel pat] [ForwardPattern pat] [LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.all_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
@[simp]
theorem String.Slice.all_takeWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.Slice.isEmpty_dropWhile {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] {s : Slice} :
@[simp]
theorem String.Slice.dropWhile_dropWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.takeWhile_takeWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.Slice.isEmpty_takeWhile_dropWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.isEmpty_dropWhile_takeWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Slice.skipSuffix?_eq_backwardPatternSkipSuffix? {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} :
theorem String.Slice.endsWith_eq_backwardPatternEndsWith {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} :
theorem String.Slice.dropSuffix?_eq_map_skipSuffix? {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} :
theorem String.Slice.Pattern.Model.skipSuffix?_eq_some_iff {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pattern.Model.skipSuffix?_eq_none_iff {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.Slice.isSome_skipSuffix? {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] [Pattern.LawfulBackwardPattern pat] {s : Slice} :
theorem String.Slice.Pattern.Model.endsWith_eq_false_iff {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.Slice.Pattern.Model.endsWith_iff {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.Slice.skipSuffix?_eq_none_iff {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] [Pattern.LawfulBackwardPattern pat] {s : Slice} :
@[simp]
theorem String.Slice.dropSuffix?_eq_none_iff {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] [Pattern.LawfulBackwardPattern pat] {s : Slice} :
theorem String.Slice.Pattern.Model.eq_append_of_dropSuffix?_eq_some {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s res : Slice} (h : s.dropSuffix? pat = some res) :
theorem String.Slice.Pos.revSkip?_eq_map_skipSuffix? {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.revSkip?_eq_some_iff {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} {pos res : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.revSkip?_eq_none_iff {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.revSkip?_eq_revMatchAt? {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} {pos : s.Pos} :
@[simp]
theorem String.Slice.revSkip?_endPos {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.Slice.Pos.revSkip?_cast {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) {pos : s.Pos} :
theorem String.Slice.Pos.revSkip?_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) {pos : s.Pos} :
theorem String.Slice.skipSuffix?_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
theorem String.Slice.endsWith_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
theorem String.Slice.dropSuffix?_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
theorem String.Slice.Pattern.Model.Pos.revSkipWhile_eq {ρ : Type} {pat : ρ} [PatternModel pat] [StrictPatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pos.revSkipWhile_cast {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) {pos : s.Pos} :
theorem String.Slice.Pos.revSkipWhile_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) {pos : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.revSkipWhile_eq_self {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} {pos : s.Pos} (h : ¬RevMatchesAt pat pos) :
theorem String.Slice.Pattern.Model.Pos.revSkipWhile_eq_iff {ρ : Type} (pat : ρ) [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} (startPos endPos : s.Pos) :
endPos.revSkipWhile pat = startPos ↔ IsLongestRevMatchAtChain pat startPos endPos ∧ (¬RevMatchesAt pat startPos ∨ IsLongestRevMatchAt pat startPos startPos)
theorem String.Slice.Pattern.Model.Pos.isLongestRevMatchAtChain_revSkipWhile {ρ : Type} (pat : ρ) [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} (pos : s.Pos) :
IsLongestRevMatchAtChain pat (pos.revSkipWhile pat) pos
theorem String.Slice.Pattern.Model.Pos.not_revMatchesAt_or_isLongestRevMatchAt_revSkipWhile {ρ : Type} (pat : ρ) [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} (pos : s.Pos) :
¬RevMatchesAt pat (pos.revSkipWhile pat) ∨ IsLongestRevMatchAt pat (pos.revSkipWhile pat) (pos.revSkipWhile pat)
theorem String.Slice.Pattern.Model.Pos.not_revMatchesAt_revSkipWhile {ρ : Type} (pat : ρ) [PatternModel pat] [StrictPatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} (pos : s.Pos) :
¬RevMatchesAt pat (pos.revSkipWhile pat)
theorem String.Slice.Pattern.Model.Pos.revSkipWhile_eq_self_iff {ρ : Type} {pat : ρ} [PatternModel pat] [StrictPatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.revSkipWhile_eq_self_iff_or {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} {pos : s.Pos} :
@[simp]
theorem String.Slice.Pos.revSkipWhile_le {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pattern.Model.Pos.revSkipWhile_le_of_isLongestRevMatchAtChain {ρ : Type} (pat : ρ) [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} {startPos endPos : s.Pos} (h : IsLongestRevMatchAtChain pat startPos endPos) :
theorem String.Slice.skipSuffixWhile_eq_revSkipWhile_endPos {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} :
@[simp]
theorem String.Slice.cast_skipSuffixWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
theorem String.Slice.Pattern.Model.not_revMatchesAt_skipSuffixWhile {ρ : Type} (pat : ρ) [PatternModel pat] [StrictPatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] (s : Slice) :
¬RevMatchesAt pat (s.skipSuffixWhile pat)
theorem String.Slice.skipSuffixWhile_eq_endPos {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.Slice.skipSuffixWhile_eq_endPos_iff {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.Model.StrictPatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.Slice.Pattern.Model.skipSuffixWhile_eq_iff {ρ : Type} (pat : ρ) [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] (s : Slice) (res : s.Pos) :
s.skipSuffixWhile pat = res ↔ IsLongestRevMatchAtChain pat res s.endPos ∧ (¬RevMatchesAt pat res ∨ IsLongestRevMatchAt pat res res)
theorem String.Slice.Pattern.Model.isLongestRevMatchAtChain_skipSuffixWhile {ρ : Type} (pat : ρ) [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] (s : Slice) :
IsLongestRevMatchAtChain pat (s.skipSuffixWhile pat) s.endPos
theorem String.Slice.Pattern.Model.not_revMatchesAt_or_isLongestRevMatchAt_skipSuffixWhile {ρ : Type} (pat : ρ) [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] (s : Slice) :
¬RevMatchesAt pat (s.skipSuffixWhile pat) ∨ IsLongestRevMatchAt pat (s.skipSuffixWhile pat) (s.skipSuffixWhile pat)
theorem String.Slice.Pattern.Model.skipSuffixWhile_eq_endPos_iff_or {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} :
s.skipSuffixWhile pat = s.endPos ↔ ¬RevMatchesAt pat s.endPos ∨ IsLongestRevMatchAt pat s.endPos s.endPos
theorem String.Slice.dropEndWhile_eq_sliceTo_skipSuffixWhile {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} :
theorem String.Slice.dropEndWhile_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
@[simp]
theorem String.Slice.endsWith_dropEndWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.Model.StrictPatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.Slice.dropEndWhile_eq_self {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} (h : s.endsWith pat = false) :
@[simp]
theorem String.Slice.dropEndWhile_eq_self_iff {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.Model.StrictPatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.Slice.Pattern.Model.dropEndWhile_eq_self_iff_or {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.Slice.takeEndWhile_eq_sliceFrom_skipSuffixWhile {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} :
@[simp]
theorem String.Slice.dropEndWhile_append_takeEndWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.LawfulBackwardPattern pat] {s : Slice} :
theorem String.Slice.takeEndWhile_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
theorem String.Slice.isEmpty_takeEndWhile_eq_true {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} (h : s.endsWith pat = false) :
@[simp]
theorem String.Slice.isEmpty_takeEndWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.Model.StrictPatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.Slice.revAll_eq_skipSuffixWhile_beq {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} :
theorem String.Slice.Pattern.Model.revAll_eq_true_iff {ρ : Type} {pat : ρ} [PatternModel pat] [BackwardPattern pat] [LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.Slice.revAll_congr {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s t : Slice} (hst : s.copy = t.copy) :
@[simp]
theorem String.Slice.revAll_takeEndWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.Slice.isEmpty_takeEndWhile_iff_dropEndWhile_eq_self {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} :
theorem String.Slice.isEmpty_dropEndWhile_iff_takeEndWhile_eq_self {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} :
@[simp]
theorem String.Slice.takeEndWhile_eq_self_iff {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} :
@[simp]
theorem String.Slice.isEmpty_dropEndWhile {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] {s : Slice} :
@[simp]
theorem String.Slice.dropEndWhile_dropEndWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.Slice.takeEndWhile_takeEndWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.Slice.isEmpty_takeEndWhile_dropEndWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.Slice.isEmpty_dropEndWhile_takeEndWhile {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.skipPrefix?_eq_skipPrefix?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
theorem String.skipPrefix?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
theorem String.Slice.skipPrefix?_copy {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.startsWith_eq_startsWith_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
@[simp]
theorem String.startsWith_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
@[simp]
theorem String.Slice.startsWith_copy {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.dropPrefix?_eq_dropPrefix?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
@[simp]
theorem String.dropPrefix?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
@[simp]
theorem String.Slice.copy_dropPrefix?_copy {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.Pos.skip?_eq_skip?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} {pos : s.Pos} :
theorem String.Pos.skip?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} {pos : s.Pos} :
theorem String.Slice.Pos.skip?_copy {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Slice.Pos.skipWhile_copy {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} {pos : s.Pos} :
@[simp]
theorem String.Pos.le_skipWhile {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} {pos : s.Pos} :
theorem String.skipPrefixWhile_eq_skipPrefixWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
theorem String.skipPrefixWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
theorem String.Slice.skipPrefixWhile_copy {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
theorem String.skipPrefixWhile_eq_startPos {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} :
s.startsWith pat = false → s.skipPrefixWhile pat = s.startPos
@[simp]
theorem String.skipPrefixWhile_eq_startPos_iff {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.Model.StrictPatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} :
theorem String.dropWhile_eq_dropWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
@[simp]
theorem String.dropWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
@[simp]
theorem String.Slice.dropWhile_copy {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.startsWith_dropWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.Model.StrictPatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} :
theorem String.dropWhile_eq_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} (h : s.startsWith pat = false) :
@[simp]
theorem String.dropWhile_eq_toSlice_iff {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.Model.StrictPatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} :
theorem String.takeWhile_eq_takeWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
@[simp]
theorem String.takeWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
@[simp]
theorem String.Slice.takeWhile_copy {ρ : Type} {pat : ρ} [Pattern.ForwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.takeWhile_append_dropWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.LawfulForwardPattern pat] {s : String} :
theorem String.isEmpty_takeWhile_eq_true {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} (h : s.startsWith pat = false) :
@[simp]
theorem String.isEmpty_takeWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.Model.StrictPatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} :
theorem String.all_eq_all_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
@[simp]
@[simp]
theorem String.Slice.all_copy {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.ForwardPattern pat] [Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.all_takeWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} :
@[simp]
theorem String.isEmpty_dropWhile {ρ : Type} {pat : ρ} [Slice.Pattern.ForwardPattern pat] {s : String} :
@[simp]
theorem String.dropWhile_dropWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} :
theorem String.takeWhile_takeWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.isEmpty_takeWhile_dropWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} :
theorem String.isEmpty_dropWhile_takeWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.ForwardPattern pat] [Slice.Pattern.Model.LawfulForwardPatternModel pat] {s : String} :
theorem String.skipSuffix?_eq_skipSuffix?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
theorem String.skipSuffix?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
theorem String.Slice.skipSuffix?_copy {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.endsWith_eq_endsWith_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.endsWith_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.Slice.endsWith_copy {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.dropSuffix?_eq_dropSuffix?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.dropSuffix?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.Slice.copy_dropSuffix?_copy {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.revSkip?_eq_revSkip?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} {pos : s.Pos} :
theorem String.revSkip?_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} {pos : s.Pos} :
theorem String.Slice.Pos.revSkip?_copy {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} {pos : s.Pos} :
theorem String.Pos.revSkipWhile_eq_revSkipWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} {pos : s.Pos} :
theorem String.Pos.revSkipWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} {pos : s.Pos} :
theorem String.Slice.Pos.revSkipWhile_copy {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} {pos : s.Pos} :
@[simp]
theorem String.Pos.revSkipWhile_le {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} {pos : s.Pos} :
theorem String.skipSuffixWhile_eq_skipSuffixWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
theorem String.skipSuffixWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
theorem String.Slice.skipSuffixWhile_copy {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
theorem String.skipSuffixWhile_eq_endPos {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} :
@[simp]
theorem String.skipSuffixWhile_eq_endPos_iff {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.Model.StrictPatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} :
theorem String.dropEndWhile_eq_dropEndWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.dropEndWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.Slice.dropEndWhile_copy {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.endsWith_dropEndWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.Model.StrictPatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} :
theorem String.dropEndWhile_eq_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} (h : s.endsWith pat = false) :
@[simp]
theorem String.dropEndWhile_eq_toSlice_iff {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.Model.StrictPatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} :
theorem String.takeEndWhile_eq_takeEndWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.takeEndWhile_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.Slice.takeEndWhile_copy {ρ : Type} {pat : ρ} [Pattern.BackwardPattern pat] [Pattern.Model.PatternModel pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.dropEndWhile_append_takeEndWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.LawfulBackwardPattern pat] {s : String} :
theorem String.isEmpty_takeEndWhile_eq_true {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} (h : s.endsWith pat = false) :
@[simp]
theorem String.isEmpty_takeEndWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.Model.StrictPatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} :
theorem String.revAll_eq_revAll_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.revAll_toSlice {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.Slice.revAll_copy {ρ : Type} {pat : ρ} [Pattern.Model.PatternModel pat] [Pattern.BackwardPattern pat] [Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.revAll_takeEndWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} :
@[simp]
theorem String.takeEndWhile_eq_toSlice_iff {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.isEmpty_dropEndWhile {ρ : Type} {pat : ρ} [Slice.Pattern.BackwardPattern pat] {s : String} :
@[simp]
theorem String.dropEndWhile_dropEndWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} :
theorem String.takeEndWhile_takeEndWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : Slice} :
@[simp]
theorem String.isEmpty_takeEndWhile_dropEndWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} :
theorem String.isEmpty_dropEndWhile_takeEndWhile {ρ : Type} {pat : ρ} [Slice.Pattern.Model.PatternModel pat] [Slice.Pattern.BackwardPattern pat] [Slice.Pattern.Model.LawfulBackwardPatternModel pat] {s : String} :