Langlib

Langlib.Classes.ContextFree.Pumping.Utils

Pumping CFG Utilities #

This file contains helper lemmas for repeated concatenation and derivation induction.

Main declarations #

def nTimes {α : Type u_1} (l : List α) (n : ) :
List α
Equations
Instances For
    theorem nTimes_succ_l {α : Type u_1} {l : List α} {n : } :
    l ^+^ n.succ = l ++ l ^+^ n
    theorem nTimes_succ_r {α : Type u_1} {l : List α} {n : } :
    l ^+^ n.succ = l ^+^ n ++ l
    theorem nTimes_map {α : Type u_2} {l : List α} {n : } {β : Type u_1} {f : αβ} :
    List.map f l ^+^ n = List.map f (l ^+^ n)
    theorem nTimes_add {α : Type u_1} {l : List α} {n m : } :
    l ^+^ (m + n) = l ^+^ m ++ l ^+^ n
    theorem nTimes_mul {α : Type u_1} {l : List α} {n m : } :
    l ^+^ m * n = l ^+^ m ^+^ n
    theorem ContextFreeGrammar.Derives.head_induction_on {T : Type uT} {g : ContextFreeGrammar T} {v : List (Symbol T g.NT)} {P : (u : List (Symbol T g.NT)) → g.Derives u vProp} {u : List (Symbol T g.NT)} (huv : g.Derives u v) (refl : P v ) (head : ∀ {u w : List (Symbol T g.NT)} (huw : g.Produces u w) (hwv : g.Derives w v), P w hwvP u ) :
    P u huv