fact: Definition split_list_completeT {data : @parser_computational_predataT Char} (splits : production_carrierT -> String -> nat -> nat -> list nat) := forall len0 valid str offset len (pf : length (substring offset len str) <= len0) nt, is_valid_nonterminal initial_nonterminals_data (of_nonterminal nt) -> len = 0 \/ offset + len <= length str -> ForallT (Forall_tails (fun prod => match prod return Type with | nil => True | it::its => forall idx, production_carrier_valid idx -> to_production idx = it::its -> @split_list_completeT_for data len0 valid it its (substring offset len str) pf (splits idx str offset len) end)) (Lookup G nt).
imports: Coq.Lists.List Fiat.Parsers.BaseTypes Fiat.Parsers.ContextFreeGrammar.Core Fiat.Parsers.MinimalParse Fiat.Common