proposition: Lemma fold_constraints_related (mapping : default_nonterminal_carrierT -> Ensemble String) st (Hmapping : forall nt, related (mapping nt) (st nt)) : forall nt, related (ensemble_fold_constraints G mapping nt) (fold_constraints compiled_productions st nt).
proof: Proof. intro nt. unfold ensemble_fold_constraints, fold_constraints. erewrite eq_opt_Lookup_idx by eassumption. apply fold_productions_related; assumption. Qed.
imports: Coq.Sets.Ensembles Coq.Classes.Morphisms Fiat.Parsers.ContextFreeGrammar.PreNotations Fiat.Parsers.ContextFreeGrammar.Carriers Fiat.Parsers.ContextFreeGrammar.Core Fiat.Parsers.ContextFreeGrammar.Precompute Fiat.Parsers.BaseTypes Fiat.Parsers.Splitters.RDPList Fiat.Parsers.ContextFreeGrammar.Fix.Definitions Fiat.Common.List.ListMorphisms