theorem
NFA.valid_sorted_of_valid
(captures : Array Capture)
(h : Capture.Valid captures)
:
Capture.Valid (captures.mergeSort fun (a b : Capture) => decide (a ≤ b))
theorem
NFA.valid_unique_of_valid
(captures : Array Capture)
(h : Capture.Valid captures)
:
Capture.Valid captures.unique
theorem
NFA.CapturesValidOfRangeMap
(captures : Array Capture)
(h :
List.map
(fun (i : Nat) =>
if i % 2 = 0 then { role := Capture.Role.Start, group := i.div 2 }
else { role := Capture.Role.End, group := i.div 2 })
(List.range captures.size) = captures.toList)
:
Capture.Valid captures