Documentation

Regex.Compiler.Lemmas.Patch

@[simp]
Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem Compiler.Lemmas.patchAssignable_of_eq {sid : NFA.Unchecked.StateID} (s1 s2 : Array NFA.Unchecked.State) (h1 : patchAssignable s1 sid) (h2 : sid < s1.size) (h3 : sid < s2.size) (h4 : s1[sid] = s2[sid]) :
    @[simp]
    theorem Compiler.Lemmas.patch2Assignable_of_eq {sid : NFA.Unchecked.StateID} (s1 s2 : Array NFA.Unchecked.State) (h1 : patch2Assignable s1 sid) (h2 : sid < s1.size) (h3 : sid < s2.size) (h4 : s1[sid] = s2[sid]) :
    theorem Compiler.Lemmas.patch_spec_constant («from» to : NFA.Unchecked.StateID) (states : Array NFA.Unchecked.State) :
    fun (s : Array NFA.Unchecked.State) => s = states NextOfLt states «from» < states.size to < states.size Code.patch «from» to (fun (x : Unit) (r : Array NFA.Unchecked.State) => stateIdNextOfEqLt states to r ∀ (sid : Fin r.size) (x : sid < states.size), sid «from»r[sid] = states[sid], fun (x : String) => True, ())
    theorem Compiler.Lemmas.patch_spec («from» : NFA.Unchecked.StateID) {to : NFA.Unchecked.StateID} {states : Array NFA.Unchecked.State} :
    fun (s : Array NFA.Unchecked.State) => s = states NextOfLt states «from» < states.size to < states.size patchAssignable states «from» Code.patch «from» to (fun (x : Unit) (r : Array NFA.Unchecked.State) => stateIdNextOfEqLt states to r assignableIf states r, fun (x : String) => False, ())
    theorem Compiler.Lemmas.patch_lift_spec {captures : Array NFA.Capture} («from» : NFA.Unchecked.StateID) {to : NFA.Unchecked.StateID} {states : Array NFA.Unchecked.State} :
    fun (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => (s.fst = states NextOfLt states «from» < states.size to < states.size patchAssignable states «from») s.snd.fst = captures cValid captures liftM (Code.patch «from» to) (fun (x : Unit) (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => (stateIdNextOfEqLt states to s.fst assignableIf states s.fst) s.snd.fst = captures cMemAndValid captures s.snd.fst, fun (x : String) => False, ())
    theorem Compiler.Lemmas.patch2_spec_constant («from» to₁ to₂ : NFA.Unchecked.StateID) (states : Array NFA.Unchecked.State) :
    fun (s : Array NFA.Unchecked.State) => s = states NextOfLt states «from» < states.size to₁ < states.size to₂ < states.size Code.patch2 «from» to₁ to₂ (fun (x : Unit) (r : Array NFA.Unchecked.State) => stateIdNextOfEqLt states to₁ r ∀ (sid : Fin r.size) (x : sid < states.size), sid «from»r[sid] = states[sid], fun (x : String) => True, ())
    theorem Compiler.Lemmas.patch2_spec_assignable («from» to₁ to₂ : NFA.Unchecked.StateID) (states : Array NFA.Unchecked.State) :
    fun (s : Array NFA.Unchecked.State) => s = states «from» < states.size to₁ < states.size to₂ < states.size Code.patch2 «from» to₁ to₂ (fun (x : Unit) (r : Array NFA.Unchecked.State) => patch2Assignable r «from», fun (x : String) => True, ())
    @[simp]
    theorem Compiler.Lemmas.patch2Assignable_of_patch_eq {f t1 t2 : NFA.Unchecked.StateID} {e : Unit} (s1 s2 : Array NFA.Unchecked.State) (h : Code.patch2 f t1 t2 s1 = EStateM.Result.ok e s2) (hf : f < s1.size) (ht1 : t1 < s1.size) (ht2 : t2 < s1.size) :
    theorem Compiler.Lemmas.patch2_spec («from» : NFA.Unchecked.StateID) {to₁ to₂ : NFA.Unchecked.StateID} {states : Array NFA.Unchecked.State} :
    fun (s : Array NFA.Unchecked.State) => s = states NextOfLt states «from» < states.size to₁ < states.size to₂ < states.size patch2Assignable states «from» Code.patch2 «from» to₁ to₂ (fun (x : Unit) (r : Array NFA.Unchecked.State) => stateIdNextOfEqLt states to₁ r to₂ < r.size assignableIf states r, fun (x : String) => False, ())