Documentation

Regex.Interval.Lemmas

instance Intervals.instInhabitedIntervalSet (α : Type) [LT α] [LE α] [HSub α α Nat] [(a b : α) → Decidable (a < b)] [(a b : α) → Decidable (a = b)] :
Equations
Equations
Instances For
    theorem Intervals.pred_lt' {n m : Nat} (h : m < n) :
    n.pred < n
    theorem Intervals.Fin.pred {n : Nat} {i : Fin n} (h : 0 < i) :
    i - 1 < n
    theorem Intervals.isNonOverlapping (l r : NonemptyInterval Char) (h1 : ¬r.fst.toNat - l.snd.toNat = 1) (h2 : ¬r.fst < l.snd) (h3 : ¬l.snd = r.fst) :
    theorem Intervals.nonOverlappingWithLast_with_none_eq_empty (acc : Interval.Acc) (h : acc.next.isNone = true) :
    acc.set.intervals.size = 0
    theorem Intervals.nonOverlapping_of_push {last : NonemptyInterval Char} (acc : Interval.Acc) (next : NonemptyInterval Char) (h1 : acc.set.intervals.last? = some last) (h2 : acc.next = some next) :
    Intervals.nonOverlapping (acc.set.intervals.push next)
    theorem Intervals.List.eq_head_of_get_first {α : Type u_1} {head : α} {tail : List α} (arr : List α) (h1 : 0 < arr.length) (h2 : arr = head :: tail) :
    head = arr.get 0, h1
    theorem Intervals.Array.eq_head_of_get_first {α : Type u_1} {head : α} {tail : List α} (arr : Array α) (h1 : 0 < arr.size) (h2 : arr.toList = head :: tail) :
    head = arr.get 0, h1
    theorem Intervals.nonOverlapping_of_nth {head : NonemptyInterval Char} {tail : List (NonemptyInterval Char)} (ranges : Array (NonemptyInterval Char)) (n : Nat) (h1 : 0 < n) (h2 : n + 1 < ranges.size) (h3 : ranges.toList = head :: tail) (h4 : ∀ (i : Nat) (h : i < tail.length - 1), Interval.nonOverlapping (tail.get i, ) (tail.get i + 1, )) :
    Interval.nonOverlapping (ranges.get n, ) (ranges.get n + 1, h2)
    theorem Intervals.nonOverlapping_of_pred (ranges : Array (NonemptyInterval Char)) (i : Fin ranges.size) (x y : NonemptyInterval Char) (h : 0 < i) (hx : x = ranges.get i - 1, ) (hy : y = ranges.get i) (hr : Intervals.nonOverlapping ranges) :
    theorem Intervals.nonOverlappingWithLast_of_push {l r : NonemptyInterval Char} (acc : Interval.Acc) (h2 : Intervals.nonOverlapping (acc.set.intervals.push l)) (h3 : Interval.nonOverlapping l r) :
    Interval.nonOverlappingWithLast (acc.push l h2).intervals (some r)