@[implicit_reducible]
@[implicit_reducible]
instance
String.Slice.Pattern.Model.CharPred.Decidable.instPatternModelForallCharPropOfDecidablePred
{p : Char → Prop}
[DecidablePred p]
:
Equations
- One or more equations did not get rendered due to their size.
theorem
String.Slice.Pattern.Model.CharPred.Decidable.isRevMatch_iff_isRevMatch_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos : s.Pos}
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.isLongestMatch_iff_isLongestMatch_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos : s.Pos}
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.isLongestRevMatch_iff_isLongestRevMatch_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos : s.Pos}
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.isLongestMatchAt_iff_isLongestMatchAt_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos pos' : s.Pos}
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.isLongestRevMatchAt_iff_isLongestRevMatchAt_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos pos' : s.Pos}
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.isLongestMatchAt_of_get
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos : s.Pos}
{h : pos ≠ s.endPos}
(hc : p (pos.get h))
:
IsLongestMatchAt p pos (pos.next h)
theorem
String.Slice.Pattern.Model.CharPred.Decidable.isLongestRevMatchAt_of_get
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos : s.Pos}
{h : pos ≠ s.startPos}
(hc : p ((pos.prev h).get ⋯))
:
IsLongestRevMatchAt p (pos.prev h) pos
theorem
String.Slice.Pattern.Model.CharPred.Decidable.revMatchesAt_iff_revMatchesAt_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos : s.Pos}
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.revMatchAt?_eq_revMatchAt?_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos : s.Pos}
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.skipPrefix?_eq_skipPrefix?_decide
{p : Char → Prop}
[DecidablePred p]
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.skipSuffix?_eq_skipSuffix?_decide
{p : Char → Prop}
[DecidablePred p]
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.toSearcher_eq
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.toBackwardSearcher_eq
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
ToBackwardSearcher.toSearcher p s = ToBackwardSearcher.toSearcher (fun (x : Char) => decide (p x)) s
theorem
String.Slice.Pattern.Model.CharPred.Decidable.isValidSearchFrom_iff_isValidSearchFrom_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos : s.Pos}
{l : List (SearchStep s)}
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.isValidRevSearchFrom_iff_isValidRevSearchFrom_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos : s.Pos}
{l : List (SearchStep s)}
:
theorem
String.Slice.Pattern.Model.CharPred.Decidable.not_revMatchesAt_of_get
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
{pos : s.Pos}
{h : pos ≠ s.startPos}
(hc : ¬p ((pos.prev h).get ⋯))
:
¬RevMatchesAt p pos
theorem
String.Slice.startsWith_prop_eq_startsWith_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.dropPrefix?_prop_eq_dropPrefix?_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.dropPrefix_prop_eq_dropPrefix_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.skipPrefix?_prop_eq_skipPrefix?_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.Pattern.ForwardPattern.skipPrefix?_prop_eq_skipPrefix?_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.skipPrefixWhile_prop_eq_skipPrefixWhile_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.skipSuffix?_prop_eq_skipSuffix?_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.dropSuffix?_prop_eq_dropSuffix?_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.dropSuffix_prop_eq_dropSuffix_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.Pattern.BackwardPattern.skipSuffix?_prop_eq_skipSuffix?_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.Pos.revSkipWhile_prop_eq_revSkipWhile_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
(curr : s.Pos)
:
theorem
String.Slice.skipSuffixWhile_prop_eq_skipSuffixWhile_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.dropEndWhile_prop_eq_dropEndWhile_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
:
theorem
String.Slice.takeEndWhile_prop_eq_takeEndWhile_decide
{p : Char → Prop}
[DecidablePred p]
{s : Slice}
: