Module Vernacexpr
type coercion_class=|FunClass|SortClass|RefClass of Libnames.qualid Constrexpr.or_by_notationVernac expressions, produced by the parser
type goal_identifier= stringtype scope_name= stringtype scope_delimiter= Constrexpr.delimiter_depth * scope_nametype goal_reference=|OpenSubgoals|NthGoal of int|GoalId of Names.Id.ttype printable=|PrintTypingFlags|PrintTables|PrintFullContext|PrintSectionContext of Libnames.qualid|PrintInspect of int|PrintGrammar of string list|PrintCustomGrammar of string|PrintKeywords|PrintLoadPath of Names.DirPath.t option|PrintLibraries|PrintModule of Libnames.qualid|PrintModuleType of Libnames.qualid|PrintNamespace of Names.DirPath.t|PrintMLLoadPath|PrintMLModules|PrintDebugGC|PrintName of Libnames.qualid Constrexpr.or_by_notation * UnivNames.full_name_list option|PrintGraph|PrintClasses|PrintTypeclasses|PrintInstances of Libnames.qualid Constrexpr.or_by_notation|PrintCoercions|PrintCoercionPaths of coercion_class * coercion_class|PrintCanonicalConversions of Libnames.qualid Constrexpr.or_by_notation list|PrintUniverses of bool * Libnames.qualid list option * string option|PrintHint of Libnames.qualid Constrexpr.or_by_notation|PrintHintGoal|PrintHintDbName of string|PrintHintDb|PrintScopes|PrintScope of string|PrintVisibility of string option|PrintAbout of Libnames.qualid Constrexpr.or_by_notation * UnivNames.full_name_list option * Goal_select.t option|PrintImplicit of Libnames.qualid Constrexpr.or_by_notation|PrintAssumptions of bool * bool * Libnames.qualid Constrexpr.or_by_notation|PrintStrategy of Libnames.qualid Constrexpr.or_by_notation option|PrintRegistered|PrintNotation of Constrexpr.notation_entry * stringtype glob_search_where=|InHyp|InConcl|Anywheretype search_item=|SearchSubPattern of glob_search_where * bool * Constrexpr.constr_pattern_expr|SearchString of glob_search_where * bool * string * scope_delimiter option|SearchKind of Decls.logical_kindtype search_request=|SearchLiteral of search_item|SearchDisjConj of (bool * search_request) list listtype searchable=|SearchPattern of Constrexpr.constr_pattern_expr|SearchRewrite of Constrexpr.constr_pattern_expr|Search of (bool * search_request) listtype locatable=|LocateAny of Libnames.qualid Constrexpr.or_by_notation|LocateTerm of Libnames.qualid Constrexpr.or_by_notation|LocateLibrary of Libnames.qualid|LocateModule of Libnames.qualid|LocateOther of string * Libnames.qualid|LocateFile of stringtype showable=|ShowGoal of goal_reference|ShowProof|ShowExistentials|ShowUniverses|ShowProofNames|ShowIntros of bool|ShowMatch of Libnames.qualidtype comment=|CommentConstr of Constrexpr.constr_expr|CommentString of string|CommentInt of inttype 'a search_restriction=|SearchInside of 'a|SearchOutside of 'atype verbose_flag= booltype coercion_flag=|AddCoercion|NoCoerciontype instance_flag=|BackInstance|BackInstanceWarning|NoInstancetype export_flag= Lib.export_flag=|Export|Importtype import_categories={negative : bool;import_cats : string CAst.t list;}type export_with_cats= export_flag * import_categories optiontype infix_flag= booltype one_import_filter_name= Libnames.qualid * booltype import_filter_expr=|ImportAll|ImportNames of one_import_filter_name listtype locality_flag= booltype option_setting=|OptionUnset|OptionSetTrue|OptionSetInt of int|OptionSetString of string
type definition_expr=|ProveBody of Constrexpr.local_binder_expr list * Constrexpr.constr_expr|DefineBody of Constrexpr.local_binder_expr list * Genredexpr.raw_red_expr option * Constrexpr.constr_expr * Constrexpr.constr_expr optiontype notation_format=|TextFormat of Names.lstringtype syntax_modifier=|SetItemLevel of string list * Notation_term.notation_binder_kind option * Extend.production_level|SetItemScope of string list * scope_name|SetLevel of int|SetCustomEntry of string * int option|SetAssoc of Gramlib.Gramext.g_assoc|SetEntryType of string * Extend.simple_constr_prod_entry_key|SetOnlyParsing|SetOnlyPrinting|SetFormat of notation_formattype notation_enable_modifier=|EnableNotationEntry of Constrexpr.notation_entry CAst.t|EnableNotationOnly of Notationextern.notation_use|EnableNotationAlltype notation_declaration={ntn_decl_string : Names.lstring;ntn_decl_interp : Constrexpr.constr_expr;ntn_decl_scope : scope_name option;ntn_decl_modifiers : syntax_modifier CAst.t list;}type 'a fix_expr_gen={fname : Names.lident;univs : Constrexpr.universe_decl_expr option;rec_order : 'a;binders : Constrexpr.local_binder_expr list;rtype : Constrexpr.constr_expr;body_def : Constrexpr.constr_expr option;notations : notation_declaration list;}type fixpoint_expr= Constrexpr.recursion_order_expr option fix_expr_gentype cofixpoint_expr= unit fix_expr_gentype local_decl_expr=|AssumExpr of Names.lname * Constrexpr.local_binder_expr list * Constrexpr.constr_expr|DefExpr of Names.lname * Constrexpr.local_binder_expr list * Constrexpr.constr_expr * Constrexpr.constr_expr optiontype inductive_kind=|Inductive_kw|CoInductive|Variant|Record|Structure|Class of booltype simple_binder= Names.lident list * Constrexpr.constr_exprtype class_binder= Names.lident * Constrexpr.constr_expr listtype 'a with_coercion= coercion_flag * 'atype 'a with_coercion_instance= (Attributes.vernac_flags * coercion_flag * instance_flag) * 'atype record_field_attr={rf_coercion : coercion_flag;rf_reversible : bool option;rf_instance : instance_flag;rf_priority : int option;rf_locality : Goptions.option_locality;rf_notation : notation_declaration list;rf_canonical : bool;}type record_field_attr_unparsed={rfu_attrs : Attributes.vernac_flags;rfu_coercion : coercion_flag;rfu_instance : instance_flag;rfu_priority : int option;rfu_notation : notation_declaration list;}type constructor_expr= (Names.lident * Constrexpr.constr_expr) with_coercion_instancetype constructor_list_or_record_decl_expr=|Constructors of constructor_expr list|RecordDecl of Names.lident option * (local_decl_expr * record_field_attr_unparsed) list * Names.lident optiontype inductive_params_expr= Constrexpr.local_binder_expr list * Constrexpr.local_binder_expr list optionIf the option is nonempty the "|" marker was used
type inductive_expr= Constrexpr.cumul_ident_decl with_coercion * inductive_params_expr * Constrexpr.constr_expr option * constructor_list_or_record_decl_exprtype one_inductive_expr= Names.lident * inductive_params_expr * Constrexpr.constr_expr option * constructor_expr listtype typeclass_constraint= Constrexpr.name_decl * Glob_term.binding_kind * Constrexpr.constr_exprand typeclass_context= typeclass_constraint listtype proof_expr= Constrexpr.ident_decl * (Constrexpr.local_binder_expr list * Constrexpr.constr_expr)type opacity_flag=|Opaque|Transparenttype proof_end=|Admitted|Proved of opacity_flag * Names.lident optiontype scheme_type=|SchemeInduction|SchemeMinimality|SchemeElimination|SchemeCasetype equality_scheme_type=|SchemeBooleanEquality|SchemeEqualitytype scheme={sch_type : scheme_type;sch_qualid : Libnames.qualid Constrexpr.or_by_notation;sch_sort : Sorts.family;}type section_subset_expr=|SsEmpty|SsType|SsSingl of Names.lident|SsCompl of section_subset_expr|SsUnion of section_subset_expr * section_subset_expr|SsSubstr of section_subset_expr * section_subset_expr|SsFwdClose of section_subset_expr
type register_kind=|RegisterInline|RegisterCoqlib of Libnames.qualid
Types concerning the module layer
type module_ast_inl= Constrexpr.module_ast * Declaremods.inlinetype module_binder= export_with_cats option * Names.lident list * module_ast_inl
The type of vernacular expressions
type vernac_one_argument_status={name : Names.Name.t;recarg_like : bool;notation_scope : scope_delimiter CAst.t list;implicit_status : Glob_term.binding_kind;}type vernac_argument_status=|VolatileArg|BidiArg|RealArg of vernac_one_argument_statustype arguments_modifier=[|`Assert|`ClearBidiHint|`ClearImplicits|`ClearScopes|`DefaultImplicits|`ExtraScopes|`ReductionDontExposeCase|`ReductionNeverUnfold|`Rename]type extend_name={}type discharge=|DoDischarge|NoDischargetype hint_info_expr= Constrexpr.constr_pattern_expr Typeclasses.hint_info_gentype reference_or_constr=|HintsReference of Libnames.qualid|HintsConstr of Constrexpr.constr_exprtype hints_expr=|HintsResolve of (hint_info_expr * bool * reference_or_constr) list|HintsResolveIFF of bool * Libnames.qualid list * int option|HintsImmediate of reference_or_constr list|HintsUnfold of Libnames.qualid list|HintsTransparency of Libnames.qualid Hints.hints_transparency_target * bool|HintsMode of Libnames.qualid * Hints.hint_mode list|HintsConstructors of Libnames.qualid list|HintsExtern of int * Constrexpr.constr_expr option * Genarg.raw_generic_argumenttype synterp_vernac_expr=|VernacLoad of verbose_flag * string|VernacReservedNotation of infix_flag * Names.lstring * syntax_modifier CAst.t list|VernacNotation of infix_flag * notation_declaration|VernacDeclareCustomEntry of string|VernacBeginSection of Names.lident|VernacEndSegment of Names.lident|VernacRequire of Libnames.qualid option * export_with_cats option * (Libnames.qualid * import_filter_expr) list|VernacImport of export_with_cats * (Libnames.qualid * import_filter_expr) list|VernacDeclareModule of export_with_cats option * Names.lident * module_binder list * module_ast_inl|VernacDefineModule of export_with_cats option * Names.lident * module_binder list * module_ast_inl Declaremods.module_signature * module_ast_inl list|VernacDeclareModuleType of Names.lident * module_binder list * module_ast_inl list * module_ast_inl list|VernacInclude of module_ast_inl list|VernacDeclareMLModule of string list|VernacChdir of string option|VernacExtraDependency of Libnames.qualid * string * Names.Id.t option|VernacSetOption of bool * Goptions.option_name * option_setting|VernacProofMode of string|VernacExtend of extend_name * Genarg.raw_generic_argument listsynterp_vernac_exprdescribes the AST of commands which have effects on parsing or parsing extensions
type nonrec synpure_vernac_expr=|VernacOpenCloseScope of bool * scope_name|VernacDeclareScope of scope_name|VernacDelimiters of scope_name * string option|VernacBindScope of scope_name * coercion_class list|VernacEnableNotation of bool * (string, Names.Id.t list * Libnames.qualid) Util.union option * Constrexpr.constr_expr option * notation_enable_modifier list * Constrexpr.notation_with_optional_scope option|VernacDefinition of discharge * Decls.definition_object_kind * Constrexpr.name_decl * definition_expr|VernacStartTheoremProof of Decls.theorem_kind * proof_expr list|VernacEndProof of proof_end|VernacExactProof of Constrexpr.constr_expr|VernacAssumption of discharge * Decls.assumption_object_kind * Declaremods.inline * (Constrexpr.ident_decl list * Constrexpr.constr_expr) with_coercion list|VernacInductive of inductive_kind * (inductive_expr * notation_declaration list) list|VernacFixpoint of discharge * fixpoint_expr list|VernacCoFixpoint of discharge * cofixpoint_expr list|VernacScheme of (Names.lident option * scheme) list|VernacSchemeEquality of equality_scheme_type * Libnames.qualid Constrexpr.or_by_notation|VernacCombinedScheme of Names.lident * Names.lident list|VernacUniverse of Names.lident list|VernacConstraint of Constrexpr.univ_constraint_expr list|VernacCanonical of Libnames.qualid Constrexpr.or_by_notation|VernacCoercion of Libnames.qualid Constrexpr.or_by_notation * (coercion_class * coercion_class) option|VernacIdentityCoercion of Names.lident * coercion_class * coercion_class|VernacNameSectionHypSet of Names.lident * section_subset_expr|VernacInstance of Constrexpr.name_decl * Constrexpr.local_binder_expr list * Constrexpr.constr_expr * (bool * Constrexpr.constr_expr) option * hint_info_expr|VernacDeclareInstance of Constrexpr.ident_decl * Constrexpr.local_binder_expr list * Constrexpr.constr_expr * hint_info_expr|VernacContext of Constrexpr.local_binder_expr list|VernacExistingInstance of (Libnames.qualid * hint_info_expr) list|VernacExistingClass of Libnames.qualid|VernacResetName of Names.lident|VernacResetInitial|VernacBack of int|VernacCreateHintDb of string * bool|VernacRemoveHints of string list * Libnames.qualid list|VernacHints of string list * hints_expr|VernacSyntacticDefinition of Names.lident * Names.Id.t list * Constrexpr.constr_expr * syntax_modifier CAst.t list|VernacArguments of Libnames.qualid Constrexpr.or_by_notation * vernac_argument_status list * (Names.Name.t * Glob_term.binding_kind) list list * arguments_modifier list|VernacReserve of simple_binder list|VernacGeneralizable of Names.lident list option|VernacSetOpacity of Conv_oracle.level * Libnames.qualid Constrexpr.or_by_notation list|VernacSetStrategy of (Conv_oracle.level * Libnames.qualid Constrexpr.or_by_notation list) list|VernacMemOption of Goptions.option_name * Goptions.table_value list|VernacPrintOption of Goptions.option_name|VernacCheckMayEval of Genredexpr.raw_red_expr option * Goal_select.t option * Constrexpr.constr_expr|VernacGlobalCheck of Constrexpr.constr_expr|VernacDeclareReduction of string * Genredexpr.raw_red_expr|VernacPrint of printable|VernacSearch of searchable * Goal_select.t option * Libnames.qualid list search_restriction|VernacLocate of locatable|VernacRegister of Libnames.qualid * register_kind|VernacPrimitive of Constrexpr.ident_decl * CPrimitives.op_or_type * Constrexpr.constr_expr option|VernacComments of comment list|VernacAttributes of Attributes.vernac_flags|VernacAbort|VernacAbortAll|VernacRestart|VernacUndo of int|VernacUndoTo of int|VernacFocus of int option|VernacUnfocus|VernacUnfocused|VernacBullet of Proof_bullet.t|VernacSubproof of Goal_select.t option|VernacEndSubproof|VernacShow of showable|VernacCheckGuard|VernacValidateProof|VernacProof of Genarg.raw_generic_argument option * section_subset_expr option|VernacAddOption of Goptions.option_name * Goptions.table_value list|VernacRemoveOption of Goptions.option_name * Goptions.table_value listsynpure_vernac_exprdescribes the AST of commands which have no effect on parsing or parsing extensions. On these ASTs, the syntactic interpretation phase is the identity.
type 'a vernac_expr_gen=|VernacSynterp of 'a|VernacSynPure of synpure_vernac_exprWe classify vernacular expressions in two categories.
VernacSynterprepresents commands which have an effect on parsing or on parsing extensions.VernacSynPurerepresents commands which have no such effects.
type vernac_expr= synterp_vernac_expr vernac_expr_gentype control_flag=|ControlTime|ControlInstructions|ControlRedirect of string|ControlTimeout of int|ControlFail|ControlSucceedtype ('a, 'b) vernac_control_gen_r={control : 'a list;attrs : Attributes.vernac_flags;expr : 'b vernac_expr_gen;}and 'a vernac_control_gen= (control_flag, 'a) vernac_control_gen_r CAst.ttype vernac_control= synterp_vernac_expr vernac_control_gen