fact: Definition parse_of_item_nonterminal__of__minimal_parse_of_nonterminal' (parse_of__of__minimal_parse_of : forall len0 valid str prods, minimal_parse_of (G := G) len0 valid str prods -> parse_of G str prods) {len0 valid str nonterminal} (p : minimal_parse_of_nonterminal (G := G) len0 valid str nonterminal) : parse_of_item G str (NonTerminal nonterminal) := let p' := (@parse_of__of__minimal_parse_of _ _ _ _ (match p as p in (@MinimalParse.minimal_parse_of_nonterminal _ _ _ _ _ len0 valid str nonterminal) return minimal_parse_of (match p with | MinParseNonTerminalStrLt _ _ _ _ _ _ _ => _ | MinParseNonTerminalStrEq _ _ _ _ _ _ _ _ => _ end) (match p with | MinParseNonTerminalStrLt _ _ _ _ _ _ _ => _ | MinParseNonTerminalStrEq _ _ _ _ _ _ _ _ => _ end) str (Lookup G nonterminal) with | MinParseNonTerminalStrLt len0 valid nonterminal str pf pf' p' => p' | MinParseNonTerminalStrEq len0 str valid nonterminal pf H H' p' => p' end)) in let pf := (match p in (@MinimalParse.minimal_parse_of_nonterminal _ _ _ _ _ len0 valid str nonterminal) return (is_valid_nonterminal initial_nonterminals_data (of_nonterminal nonterminal)) with | MinParseNonTerminalStrLt _ _ _ _ _ pf _ => pf | MinParseNonTerminalStrEq _ _ _ _ _ pf _ _ => pf end) in (ParseNonTerminal nonterminal (proj1 (initial_nonterminals_correct _) pf) p').
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.Strings.String Coq.Lists.List Coq.ZArith.ZArith Fiat.Parsers.ContextFreeGrammar.Core Fiat.Parsers.ContextFreeGrammar.Properties Fiat.Parsers.WellFoundedParse Fiat.Parsers.CorrectnessBaseTypes Fiat.Parsers.BaseTypes Fiat.Parsers.StringLike.Properties Fiat.Parsers.BaseTypesLemmas Fiat.Parsers.MinimalParse Fiat.Parsers.WellFoundedParseProperties Fiat.Common