Documentation

RegexCorrectness.Strategy.Refinement

def Regex.Strategy.refineUpdate {bufferSize : } (update : List ( × String.Pos)) (buffer : Buffer bufferSize) :
Equations
Instances For
    theorem Regex.Strategy.refineUpdateOpt.isSome_iff {bufferSize : } {matched' : Option (List ( × String.Pos))} {matched : Option (Buffer bufferSize)} (h : refineUpdateOpt matched' matched) :
    matched'.isSome = true matched.isSome = true
    theorem Regex.Strategy.refineUpdateOpt.none_iff {bufferSize : } {matched' : Option (List ( × String.Pos))} {matched : Option (Buffer bufferSize)} (h : refineUpdateOpt matched' matched) :
    matched' = none matched = none
    theorem Regex.Strategy.refineUpdateOpt.orElse {bufferSize : } {update₁ update₂ : Option (List ( × String.Pos))} {buffer₁ buffer₂ : Option (Buffer bufferSize)} (h₁ : refineUpdateOpt update₁ buffer₁) (h₂ : refineUpdateOpt update₂ buffer₂) :
    refineUpdateOpt (update₁ <|> update₂) (buffer₁ <|> buffer₂)
    def Regex.Strategy.refineUpdates {nfa : NFA} {bufferSize : } (updates : Vector (List ( × String.Pos)) nfa.nodes.size) (buffers : Vector (Buffer bufferSize) nfa.nodes.size) :
    Equations
    Instances For
      theorem Regex.Strategy.refineUpdates.set_set {nfa : NFA} {bufferSize : } {updates : Vector (List ( × String.Pos)) nfa.nodes.size} {buffers : Vector (Buffer bufferSize) nfa.nodes.size} {i : Fin nfa.nodes.size} {update : List ( × String.Pos)} {buffer : Buffer bufferSize} (h₁ : refineUpdates updates buffers) (h₂ : refineUpdate update buffer) :
      refineUpdates (updates.set (↑i) update ) (buffers.set (↑i) buffer )