Module Recdef_plugin.Indfun_common
val mk_rel_id : Names.Id.t -> Names.Id.tval mk_correct_id : Names.Id.t -> Names.Id.tval mk_complete_id : Names.Id.t -> Names.Id.tval mk_equation_id : Names.Id.t -> Names.Id.tval fresh_id : Names.Id.t list -> string -> Names.Id.tval fresh_name : Names.Id.t list -> string -> Names.Name.tval get_name : Names.Id.t list -> ?default:string -> Names.Name.t -> Names.Name.tval array_get_start : 'a array -> 'a arrayval locate_ind : Libnames.qualid -> Names.inductiveval locate_constant : Libnames.qualid -> Names.Constant.tval locate_with_msg : Pp.t -> (Libnames.qualid -> 'a) -> Libnames.qualid -> 'aval filter_map : ('a -> bool) -> ('a -> 'b) -> 'a list -> 'b listval list_union_eq : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a listval list_add_set_eq : ('a -> 'a -> bool) -> 'a -> 'a list -> 'a listval chop_rlambda_n : int -> Glob_term.glob_constr -> (Names.Name.t * Glob_term.glob_constr * Glob_term.glob_constr option) list * Glob_term.glob_constrval chop_rprod_n : int -> Glob_term.glob_constr -> (Names.Name.t * Glob_term.glob_constr) list * Glob_term.glob_constrval eq : EConstr.constr Stdlib.Lazy.tval refl_equal : EConstr.constr Stdlib.Lazy.tval jmeq : unit -> EConstr.constrval jmeq_refl : unit -> EConstr.constrval make_eq : unit -> EConstr.constrval with_full_print : ('a -> 'b) -> 'a -> 'b
type function_info={function_constant : Names.Constant.t;graph_ind : Names.inductive;equation_lemma : Names.Constant.t option;correctness_lemma : Names.Constant.t option;completeness_lemma : Names.Constant.t option;rect_lemma : Names.Constant.t option;rec_lemma : Names.Constant.t option;prop_lemma : Names.Constant.t option;sprop_lemma : Names.Constant.t option;is_general : bool;}
val find_Function_infos : Names.Constant.t -> function_info optionval find_Function_of_graph : Names.inductive -> function_info optionval add_Function : bool -> Names.Constant.t -> unitval update_Function : function_info -> unitval pr_info : Environ.env -> Evd.evar_map -> function_info -> Pp.tdebugging
val pr_table : Environ.env -> Evd.evar_map -> Pp.tval observe_tac : (Environ.env -> Evd.evar_map -> Pp.t) -> Tacmach.tactic -> Tacmach.tactic
module New : sig ... endval observe : Pp.t -> unitval do_observe : unit -> boolval do_rewrite_dependent : unit -> bool
val is_strict_tcc : unit -> boolval h_intros : Names.Id.t list -> Tacmach.tacticval h_id : Names.Id.tval hrec_id : Names.Id.tval acc_inv_id : EConstr.constr Util.delayedval ltof_ref : Names.GlobRef.t Util.delayedval well_founded_ltof : EConstr.constr Util.delayedval acc_rel : EConstr.constr Util.delayedval well_founded : EConstr.constr Util.delayedval evaluable_of_global_reference : Names.GlobRef.t -> Names.evaluable_global_referenceval list_rewrite : bool -> (EConstr.constr * bool) list -> Tacmach.tacticval decompose_lam_n : Evd.evar_map -> int -> EConstr.t -> (Names.Name.t Context.binder_annot * EConstr.t) list * EConstr.tval compose_lam : (Names.Name.t Context.binder_annot * EConstr.t) list -> EConstr.t -> EConstr.tval compose_prod : (Names.Name.t Context.binder_annot * EConstr.t) list -> EConstr.t -> EConstr.t
type tcc_lemma_value=|Undefined|Value of Constr.t|Not_needed