Documentation

Regex.Compiler.Lemmas.AddState

Equations
Instances For
    @[simp]
    theorem Compiler.Lemmas.push'_lt (state : NFA.Unchecked.State) (states : Array NFA.Unchecked.State) :
    states.size < (Code.push' state states).snd.size
    @[simp]
    theorem Compiler.Lemmas.append_of_push {state : NFA.Unchecked.State} (s s_1 : Array NFA.Unchecked.State) (r : NFA.Unchecked.StateID) (h_1 : r < s_1.size) (h_2 : s_1 = s.push state) (h_3 : s_1[r]? = some state) :
    (state : NFA.Unchecked.State), s_1 = s.push state s_1[r]? = some state
    @[simp]
    theorem Compiler.Lemmas.assignableIfP_of_push {state : NFA.Unchecked.State} (s s_1 : Array NFA.Unchecked.State) (r : NFA.Unchecked.StateID) (h_1 : r < s_1.size) (hs : State.patchAssignable state) (h_2 : s_1 = s.push state) (h_3 : s_1[r]? = some state) :
    ( (state : NFA.Unchecked.State), s_1 = s.push state s_1[r]? = some state) (∀ (sid : Fin s_1.size), patchAssignable s sidpatchAssignable s_1 sid) ∀ (sid : Fin s_1.size), ¬sid = s.sizepatch2Assignable s sidpatch2Assignable s_1 sid
    @[simp]
    theorem Compiler.Lemmas.assignableIfP_of_push' {state : NFA.Unchecked.State} (s s_1 : Array NFA.Unchecked.State) (r : ThompsonRef) (h_2 : r.end < s_1.size) (hs : State.patchAssignable state) (h_4 : s_1 = s.push state) (h_5 : s_1[r.end]? = some state) :
    ( (state : NFA.Unchecked.State), s_1 = s.push state s_1[r.end]? = some state) (∀ (sid : Fin s_1.size), patchAssignable s sidpatchAssignable s_1 sid) ∀ (sid : Fin s_1.size), ¬sid = s.sizepatch2Assignable s sidpatch2Assignable s_1 sid
    @[simp]
    theorem Compiler.Lemmas.patch2Assignable_of_eat_state {mode : NFA.Unchecked.EatMode} (states : Array NFA.Unchecked.State) (sid sid' : NFA.Unchecked.StateID) (hlt : sid < states.size) (heq : states[sid]? = some (NFA.Unchecked.State.Eat mode sid')) :
    patch2Assignable states sid
    @[simp]
    theorem Compiler.Lemmas.patch2Assignable_of_state {state : NFA.Unchecked.State} (states : Array NFA.Unchecked.State) (sid : NFA.Unchecked.StateID) (hlt : sid < states.size) (h : State.patch2Assignable state) (heq : states[sid]? = some state) :
    patch2Assignable states sid
    theorem Compiler.Lemmas.c_at_least_set_spec (possible_empty_capture_group : Option Nat) (greedy : Bool) (states : Array NFA.Unchecked.State) (captures : Array NFA.Capture) {groups : Array Nat} :
    fun (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => s.fst = states s.snd.fst = captures s.snd.snd = groups Code.c_at_least_set possible_empty_capture_group greedy (fun (x : Unit) (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => states = s.fst s.snd.fst = captures groups.size s.snd.snd.size assignableIf states s.fst, fun (x : String) => False, ())
    theorem Compiler.Lemmas.c_at_least_0_post_spec (compiled : ThompsonRef) (plus : NFA.Unchecked.StateID) (greedy possessive : Bool) (states : Array NFA.Unchecked.State) :
    fun (s : Array NFA.Unchecked.State) => s = states plus < states.size compiled.start < states.size NextOfLt states patchAssignable states compiled.end patchAssignable states plus Code.c_at_least_0_post compiled plus greedy possessive (fun (r : ThompsonRef) (s : Array NFA.Unchecked.State) => tRefNextOfLeLt states r s assignableIf states s patchAssignable s r.end, fun (x : String) => False, ())
    theorem Compiler.Lemmas.c_at_least_0_post_lift_spec (compiled : ThompsonRef) (plus : NFA.Unchecked.StateID) (greedy possessive : Bool) (states : Array NFA.Unchecked.State) (captures : Array NFA.Capture) :
    fun (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => (s.fst = states plus < states.size compiled.start < states.size NextOfLt states patchAssignable states compiled.end patchAssignable states plus) s.snd.fst = captures cValid captures liftM (Code.c_at_least_0_post compiled plus greedy possessive) (fun (r : ThompsonRef) (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => (tRefNextOfLeLt states r s.fst assignableIf states s.fst patchAssignable s.fst r.end) s.snd.fst = captures cMemAndValid captures s.snd.fst, fun (x : String) => False, ())
    theorem Compiler.Lemmas.c_at_least_0_spec (compiled : ThompsonRef) (possible_empty_capture_group : Option Nat) (greedy : Bool) (states : Array NFA.Unchecked.State) (captures : Array NFA.Capture) :
    fun (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => s.fst = states tRefLt compiled states NextOfLt states patchAssignable states compiled.end s.snd.fst = captures cValid captures Code.c_at_least_0 compiled possible_empty_capture_group greedy (fun (r : NFA.Unchecked.StateID) (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => stateIdNextOfLt states r s.fst assignableIf states s.fst patchAssignable s.fst r s.snd.fst = captures cMemAndValid captures s.snd.fst, fun (x : String) => False, ())
    theorem Compiler.Lemmas.c_at_least_1_post_spec (compiled : ThompsonRef) (union : NFA.Unchecked.StateID) (possessive : Bool) (states : Array NFA.Unchecked.State) :
    fun (s : Array NFA.Unchecked.State) => s = states union < states.size tRefLt compiled states NextOfLt states patchAssignable states compiled.end patchAssignable states union Code.c_at_least_1_post compiled union possessive (fun (r : ThompsonRef) (s : Array NFA.Unchecked.State) => tRefNextOfLeLt states r s assignableIf states s patchAssignable s r.end, fun (x : String) => False, ())
    theorem Compiler.Lemmas.c_at_least_1_post_lift_spec (compiled : ThompsonRef) (union : NFA.Unchecked.StateID) (possessive : Bool) (states : Array NFA.Unchecked.State) (captures : Array NFA.Capture) :
    fun (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => (s.fst = states union < states.size tRefLt compiled states NextOfLt states patchAssignable states compiled.end patchAssignable states union) s.snd.fst = captures cValid captures liftM (Code.c_at_least_1_post compiled union possessive) (fun (r : ThompsonRef) (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => (tRefNextOfLeLt states r s.fst assignableIf states s.fst patchAssignable s.fst r.end) s.snd.fst = captures cMemAndValid captures s.snd.fst, fun (x : String) => False, ())
    theorem Compiler.Lemmas.c_at_least_1_spec (possible_empty_capture_group : Option Nat) (greedy : Bool) (states : Array NFA.Unchecked.State) (captures : Array NFA.Capture) :
    theorem Compiler.Lemmas.c_at_least_2_spec («prefix» last : ThompsonRef) (greedy possessive : Bool) (states : Array NFA.Unchecked.State) :
    fun (s : Array NFA.Unchecked.State) => s = states tRefLt «prefix» states tRefLt last states NextOfLt states patchAssignable states «prefix».end patchAssignable states last.end Code.c_at_least_2 «prefix» last greedy possessive (fun (r : ThompsonRef) (s : Array NFA.Unchecked.State) => tRefNextOfLeLt states r s assignableIf states s patchAssignable s r.end, fun (x : String) => False, ())
    theorem Compiler.Lemmas.c_at_least_2_lift_spec («prefix» last : ThompsonRef) (greedy possessive : Bool) (states : Array NFA.Unchecked.State) (captures : Array NFA.Capture) :
    fun (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => (s.fst = states tRefLt «prefix» states tRefLt last states NextOfLt states patchAssignable states «prefix».end patchAssignable states last.end) s.snd.fst = captures cValid captures liftM (Code.c_at_least_2 «prefix» last greedy possessive) (fun (r : ThompsonRef) (s : Array NFA.Unchecked.State × Array NFA.Capture × Array Nat) => (tRefNextOfLeLt states r s.fst assignableIf states s.fst patchAssignable s.fst r.end) s.snd.fst = captures cMemAndValid captures s.snd.fst, fun (x : String) => False, ())