Documentation

RegexCorrectness.NFA.Semantics.ProofData.Loop

inductive Regex.NFA.Compile.ProofData.Star.Loop [Star] {s : String} :
s.Poss.PosList ( × s.Pos)Prop

Consider nfa' := nfa.pushRegex next (.star greedy e). When there is a path in nfa' from nfaExpr.start to next, it must have looped nfaExpr before n times, followed by the last step from nfa.size to next.

A Loop term corresponds to such a loop. The last variant corresponds to the last step, and the loop variant extracts the first iteration and the remaining loop.

Instances For
    theorem Regex.NFA.Compile.ProofData.Star.Loop.intro [Star] {s : String} {pos pos' : s.Pos} {update : List ( × s.Pos)} (wf : nfa.WellFormed) (next_lt : next < nfa.size) (path : nfa'.Path nfa.size nfaExpr.start pos next pos' update) :
    Loop pos pos' update