package coq
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=73466e61f229b23b4daffdd964be72bd7a110963b9d84bd4a86bb05c5dc19ef3
doc/coq-core.tactics/Hints/index.html
Module Hints
Source
General functions.
val decompose_app_bound :
Evd.evar_map ->
EConstr.constr ->
Names.GlobRef.t * EConstr.constr array
Pre-created hint databases
type 'a hint_ast =
| Res_pf of 'a
| ERes_pf of 'a
| Give_exact of 'a
| Res_pf_THEN_trivial_fail of 'a
| Unfold_nth of Tacred.evaluable_global_reference
| Extern of Pattern.constr_pattern option * Genarg.glob_generic_argument
The head may not be bound.
type 'a hints_path_gen =
| PathAtom of 'a hints_path_atom_gen
| PathStar of 'a hints_path_gen
| PathSeq of 'a hints_path_gen * 'a hints_path_gen
| PathOr of 'a hints_path_gen * 'a hints_path_gen
| PathEmpty
| PathEpsilon
val glob_hints_path_atom :
Libnames.qualid hints_path_atom_gen ->
Names.GlobRef.t hints_path_atom_gen
type hints_entry =
| HintsResolveEntry of (Typeclasses.hint_info * hnf * hints_path_atom * hint_term) list
| HintsImmediateEntry of (hints_path_atom * hint_term) list
| HintsCutEntry of hints_path
| HintsUnfoldEntry of Tacred.evaluable_global_reference list
| HintsTransparencyEntry of Tacred.evaluable_global_reference hints_transparency_target * bool
| HintsModeEntry of Names.GlobRef.t * hint_mode list
| HintsExternEntry of Typeclasses.hint_info * Genarg.glob_generic_argument
Warns
create_hint_db local name st use_dn
. st
is a transparency state for unification using this db use_dn
switches the use of the discrimination net for all hints and patterns.
val remove_hints :
locality:hint_locality ->
hint_db_name list ->
Names.GlobRef.t list ->
unit
A constr which is Hint'ed will be:
- (1) used as an Exact, if it does not start with a product
- (2) used as an Apply, if its HNF starts with a product, and has no missing arguments.
- (3) used as an EApply, if its HNF starts with a product, and has missing arguments.
push_resolve_hyp hname htyp db
. used to add an hypothesis to the local hint database; Never raises a user exception; If the hyp cannot be used as a Hint, it is not added.
Create a Hint database from the pairs (name, constr). Useful to take the current goal hypotheses as hints; Boolean tells if lemmas with evars are allowed
val make_local_hint_db :
Environ.env ->
Evd.evar_map ->
?ts:TransparentState.t ->
bool ->
Tactypes.delayed_open_constr list ->
hint_db
Use around toplevel calls to hint-using tactics, to enable the tracking of non-imported hints. Any tactic calling run_hint
must be wrapped this way.
val wrap_hint_warning_fun :
Environ.env ->
Evd.evar_map ->
(Evd.evar_map -> 'a * Evd.evar_map) ->
'a * Evd.evar_map
Variant of the above for non-tactics
val hint_res_pf :
?with_evars:bool ->
?with_classes:bool ->
?flags:Unification.unify_flags ->
hint ->
unit Proofview.tactic
Printing hints