Documentation

RegexCorrectness.Regex.Basic

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    noncomputable def Regex.IsSearchRegex.inner {re : Regex} (s : re.IsSearchRegex) :
    Equations
    Instances For
      noncomputable def Regex.IsSearchRegex.expr {re : Regex} (s : re.IsSearchRegex) :
      Equations
      Instances For
        theorem Regex.IsSearchRegex.lt_of_mem_tags {re : Regex} {tag : ℕ} (s : re.IsSearchRegex) (h : tag ∈ s.expr.tags) :
        2 * tag < re.maxTag
        theorem Regex.IsSearchRegex.captureNextBuf_soundness' {s : String} {re : Regex} {bufferSize : ℕ} {pos : s.Pos} {matched : Buffer s bufferSize} (h : re.captureNextBuf bufferSize pos = some matched) (s✝ : re.IsSearchRegex) :
        ∃ (pos' : s.Pos) (pos'' : s.Pos) (groups : Data.CaptureGroups s), pos ≤ pos' ∧ Data.Expr.Captures pos' pos'' groups s✝.expr ∧ Strategy.EquivMaterializedUpdate (Strategy.materializeRegexGroups groups) matched
        theorem Regex.IsSearchRegex.captureNextBuf_soundness {s : String} {re : Regex} {bufferSize : ℕ} {pos : s.Pos} {matched : Buffer s bufferSize} (h : re.captureNextBuf bufferSize pos = some matched) (s✝ : re.IsSearchRegex) (le : 2 ≤ bufferSize) :
        ∃ (pos' : s.Pos) (pos'' : s.Pos) (groups : Data.CaptureGroups s), pos ≤ pos' ∧ Data.Expr.Captures pos' pos'' groups s✝.expr ∧ Strategy.EquivMaterializedUpdate (Strategy.materializeRegexGroups groups) matched ∧ matched[0] = String.PosPlusOne.pos pos' ∧ matched[1] = String.PosPlusOne.pos pos''
        theorem Regex.IsSearchRegex.captureNextBuf_completeness' {s : String} {re : Regex} {bufferSize : ℕ} {pos : s.Pos} (h : re.captureNextBuf bufferSize pos = none) (isr : re.IsSearchRegex) (pos' pos'' : s.Pos) (groups : Data.CaptureGroups s) (le : pos ≤ pos') (c : Data.Expr.Captures pos' pos'' groups isr.expr) :
        theorem Regex.IsSearchRegex.captureNextBuf_completeness {s : String} {re : Regex} {bufferSize : ℕ} {pos : s.Pos} (h : re.captureNextBuf bufferSize pos = none) (isr : re.IsSearchRegex) :
        ¬∃ (pos' : s.Pos) (pos'' : s.Pos) (groups : Data.CaptureGroups s), pos ≤ pos' ∧ Data.Expr.Captures pos' pos'' groups isr.expr
        theorem Regex.IsSearchRegex.searchNext_some {s : String} {re : Regex} {pos : s.Pos} {slice : String.Slice} (h : re.searchNext pos = some slice) (isr : re.IsSearchRegex) :
        ∃ (pos' : s.Pos) (pos'' : s.Pos) (groups : Data.CaptureGroups s), pos ≤ pos' ∧ Data.Expr.Captures pos' pos'' groups isr.expr ∧ slice.startInclusive = ⋯ ▸ pos' ∧ slice.endExclusive = ⋯ ▸ pos''