fact: Fixpoint for_first_char_reachable_from_parse_of_productions {valid0 pats} (Hsub : sub_nonterminals_listT valid0 initial_nonterminals_data) (str : String) (p : parse_of G str pats) (Hforall : Forall_parse_of (fun _ nt' => is_valid_nonterminal valid0 (of_nonterminal nt')) p) {struct p} : for_first_char str (fun ch => inhabited (reachable_from_productions G ch valid0 pats)) with for_first_char_reachable_from_parse_of_production {valid0 pat} (Hsub : sub_nonterminals_listT valid0 initial_nonterminals_data) (str : String) (p : parse_of_production G str pat) (Hforall : Forall_parse_of_production (fun _ nt' => is_valid_nonterminal valid0 (of_nonterminal nt')) p) {struct p} : for_first_char str (fun ch => inhabited (reachable_from_production G ch valid0 pat)).
imports: Fiat.Parsers.ContextFreeGrammar.Core Fiat.Parsers.ContextFreeGrammar.Properties Fiat.Parsers.StringLike.Properties Fiat.Parsers.StringLike.FirstChar Fiat.Parsers.Reachable.OnlyFirst.Reachable Fiat.Parsers.Reachable.OnlyFirst.MinimalReachable Fiat.Parsers.Reachable.OnlyFirst.MinimalReachableOfReachable Fiat.Parsers.Reachable.MaybeEmpty.MinimalOfCore Fiat.Parsers.Reachable.MaybeEmpty.OfParse Fiat.Parsers.BaseTypes Fiat.Common