Detyping
If true, contract branches with same r.h.s. and same matching variables in a disjunctive pattern
If this flag is true and the last non unique clause of a "match" is a variable-free disjunctive pattern, turn it into a catch-call case
val subst_cases_pattern : Mod_subst.substitution -> Glob_term.cases_pattern -> Glob_term.cases_pattern
val subst_glob_constr : Environ.env -> Mod_subst.substitution -> Glob_term.glob_constr -> Glob_term.glob_constr
val factorize_eqns : 'a Glob_term.cases_clauses_g -> 'a Glob_term.disjunctive_cases_clauses_g
detype isgoal avoid ctx c
turns a closed c
, into a glob_constr de Bruijn indexes are turned to bound names, avoiding names in avoid
isgoal
tells if naming must avoid global-level synonyms as intro does ctx
gives the names of the free variables
val detype : 'a delay -> ?lax:bool -> bool -> Names.Id.Set.t -> Environ.env -> Evd.evar_map -> EConstr.constr -> 'a Glob_term.glob_constr_g
val detype_sort : Evd.evar_map -> Sorts.t -> Glob_term.glob_sort
val detype_rel_context : 'a delay -> ?lax:bool ->
EConstr.constr option -> Names.Id.Set.t -> (Termops.names_context * Environ.env) -> Evd.evar_map -> EConstr.rel_context -> 'a Glob_term.glob_decl_g list
val detype_closed_glob : ?lax:bool -> bool -> Names.Id.Set.t -> Environ.env -> Evd.evar_map -> Ltac_pretype.closed_glob_constr -> Glob_term.glob_constr
val lookup_name_as_displayed : Environ.env -> Evd.evar_map -> EConstr.constr -> Names.Id.t -> int option
look for the index of a named var or a nondep var as it is renamed
val lookup_index_as_renamed : Environ.env -> Evd.evar_map -> EConstr.constr -> int -> int option
val subst_genarg_hook : (Mod_subst.substitution -> Genarg.glob_generic_argument -> Genarg.glob_generic_argument) Hook.t
module PrintingInductiveMake (Test : sig ... end) : sig ... end