ComFixpoint
Entry points for the vernacular commands Fixpoint and CoFixpoint
val do_fixpoint_interactive :
scope:Locality.definition_scope ->
?clearbody:bool ->
poly:bool ->
?typing_flags:Declarations.typing_flags ->
?deprecation:Deprecation.t ->
Vernacexpr.fixpoint_expr list ->
Declare.Proof.t
val do_fixpoint :
?scope:Locality.definition_scope ->
?clearbody:bool ->
poly:bool ->
?typing_flags:Declarations.typing_flags ->
?deprecation:Deprecation.t ->
?using:Vernacexpr.section_subset_expr ->
Vernacexpr.fixpoint_expr list ->
unit
val do_cofixpoint_interactive :
scope:Locality.definition_scope ->
poly:bool ->
?deprecation:Deprecation.t ->
Vernacexpr.cofixpoint_expr list ->
Declare.Proof.t
val do_cofixpoint :
scope:Locality.definition_scope ->
poly:bool ->
?deprecation:Deprecation.t ->
?using:Vernacexpr.section_subset_expr ->
Vernacexpr.cofixpoint_expr list ->
unit
Internal API
Typing global fixpoints and cofixpoint_expr
val adjust_rec_order :
structonly:bool ->
Constrexpr.local_binder_expr list ->
Constrexpr.recursion_order_expr option ->
Names.lident option
type ('constr, 'types) recursive_preentry =
Names.Id.t list * Sorts.relevance list * 'constr option list * 'types list
names / relevance / defs / types
val interp_recursive :
Environ.env ->
program_mode:bool ->
cofix:bool ->
Names.lident option Vernacexpr.fix_expr_gen list ->
(Environ.env * EConstr.named_context * UState.universe_decl * Evd.evar_map)
* ( EConstr.t, EConstr.types ) recursive_preentry
* (EConstr.rel_context * Impargs.manual_implicits * int option) list
Exported for Program
Exported for Funind
val interp_fixpoint :
?check_recursivity:bool ->
?typing_flags:Declarations.typing_flags ->
cofix:bool ->
Names.lident option Vernacexpr.fix_expr_gen list ->
( Constr.t, Constr.types ) recursive_preentry
* UState.universe_decl
* UState.t
* (EConstr.rel_context * Impargs.manual_implicits * int option) list
val compute_possible_guardness_evidences :
(( 'a, 'b ) Context.Rel.pt * 'c * int option) ->
int list
Very private function, do not use