Documentation

RegexCorrectness.Backtracker.Correctness

theorem Regex.Backtracker.captureNext_soundness {s : String} {e : Data.Expr} {bufferSize : ℕ} {pos : s.Pos} {matchedB : (BufferStrategy s bufferSize).Update} (disj : e.Disjoint) (hresB : captureNext (BufferStrategy s bufferSize) (NFA.compile e) ⋯ pos = some matchedB) :
∃ (pos' : s.Pos) (pos'' : s.Pos) (groups : Data.CaptureGroups s), pos ≤ pos' ∧ Data.Expr.Captures pos' pos'' groups e ∧ Strategy.EquivMaterializedUpdate (Strategy.materializeRegexGroups groups) matchedB
theorem Regex.Backtracker.captureNext_completeness' {s : String} {e : Data.Expr} {bufferSize : ℕ} {pos : s.Pos} (hresB : captureNext (BufferStrategy s bufferSize) (NFA.compile e) ⋯ pos = none) (pos' pos'' : s.Pos) (groups : Data.CaptureGroups s) (le : pos ≤ pos') (c : Data.Expr.Captures pos' pos'' groups e) :
theorem Regex.Backtracker.captureNext_completeness {s : String} {e : Data.Expr} {bufferSize : ℕ} {pos : s.Pos} (hresB : captureNext (BufferStrategy s bufferSize) (NFA.compile e) ⋯ pos = none) :
¬∃ (pos' : s.Pos) (pos'' : s.Pos) (groups : Data.CaptureGroups s), pos ≤ pos' ∧ Data.Expr.Captures pos' pos'' groups e
Equations
  • One or more equations did not get rendered due to their size.
Instances For