123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172# 11 "plugins/derive/g_derive.mlg"openStdarglet_=Mltop.add_known_module"rocq-runtime.plugins.derive"# 19 "plugins/derive/g_derive.mlg"letclassify_derive_command_=Vernacextend.(VtStartProof(Doesn'tGuaranteeOpacity,[]))let()=Mltop.add_init_function"rocq-runtime.plugins.derive"(fun()->Procq.(set_keyword_state(CLexer.add_keyword_tok(get_keyword_state())(Tok.PKEYWORD"SuchThat"))))letwarn_deprecated_derive_suchthat=CWarnings.create~name:"deprecated-derive-suchthat"~category:Deprecation.Version.v9_0(fun()->Pp.strbrk"Use of \"SuchThat\" and \"As\" in \"Derive\" is deprecated; replace them respectively by \"in\" and \"as\".")let()=Vernacextend.static_vernac_extend~plugin:(Some"rocq-runtime.plugins.derive")~command:"Derive"~classifier:(classify_derive_command)?entry:None[(Vernacextend.TyML(false,Vernacextend.TyTerminal("Derive",Vernacextend.TyNonTerminal(Extend.TUentry(Genarg.get_arg_tagwit_open_binders),Vernacextend.TyTerminal("SuchThat",Vernacextend.TyNonTerminal(Extend.TUentry(Genarg.get_arg_tagwit_constr),Vernacextend.TyTerminal("As",Vernacextend.TyNonTerminal(Extend.TUentry(Genarg.get_arg_tagwit_identref),Vernacextend.TyNil)))))),(letcoqpp_bodyblsuchthatlemmaatts=Vernactypes.vtopenproof(fun()->(# 36 "plugins/derive/g_derive.mlg"warn_deprecated_derive_suchthat();Derive.start_deriving~attsblsuchthatlemma.CAst.v))infunblsuchthatlemma?loc~atts()->coqpp_bodyblsuchthatlemma(Attributes.parse# 34 "plugins/derive/g_derive.mlg"Vernacentries.DefAttributes.def_attributesatts)),None));(Vernacextend.TyML(false,Vernacextend.TyTerminal("Derive",Vernacextend.TyNonTerminal(Extend.TUentry(Genarg.get_arg_tagwit_open_binders),Vernacextend.TyTerminal("in",Vernacextend.TyNonTerminal(Extend.TUentry(Genarg.get_arg_tagwit_constr),Vernacextend.TyTerminal("as",Vernacextend.TyNonTerminal(Extend.TUentry(Genarg.get_arg_tagwit_identref),Vernacextend.TyNil)))))),(letcoqpp_bodyblsuchthatlemmaatts=Vernactypes.vtopenproof(fun()->(# 40 "plugins/derive/g_derive.mlg"Derive.start_deriving~attsblsuchthatlemma.CAst.v))infunblsuchthatlemma?loc~atts()->coqpp_bodyblsuchthatlemma(Attributes.parse# 38 "plugins/derive/g_derive.mlg"Vernacentries.DefAttributes.def_attributesatts)),None))]