package coq-core
Install
Dune Dependency
Authors
Maintainers
Sources
md5=0cfaa70f569be9494d24c829e6555d46
sha512=8ee967c636b67b22a4f34115871d8f9b9114df309afc9ddf5f61275251088c6e21f6cf745811df75554d30f4cebb6682f23eeb2e88b771330c4b60ce3f6bf5e2
doc/ltac_plugin/Ltac_plugin/Tactic_matching/index.html
Module Ltac_plugin.Tactic_matching
Source
This file extends Matching with the main logic for Ltac's (lazy)match and (lazy)match goal.
type 'a t = {
subst : Constr_matching.bound_ident_map * Ltac_pretype.extended_patvar_map;
context : Constr_matching.context Names.Id.Map.t;
terms : EConstr.constr Names.Id.Map.t;
lhs : 'a;
}
t
is the type of matching successes. It ultimately contains a Tacexpr.glob_tactic_expr
representing the left-hand side of the corresponding matching rule, a matching substitution to be applied, a context substitution mapping identifier to context like those of Constr_matching.matching_result
), and a Constr.t
substitution mapping corresponding to matched hypotheses.
val match_term :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
(Constr_matching.binding_bound_vars * Constr_matching.instantiated_pattern,
Tacexpr.glob_tactic_expr)
Tacexpr.match_rule
list ->
Tacexpr.glob_tactic_expr t Proofview.tactic
match_term env sigma term rules
matches the term term
with the set of matching rules rules
. The environment env
and the evar_map sigma
are not currently used, but avoid code duplication.
val match_goal :
Environ.env ->
Evd.evar_map ->
EConstr.named_context ->
EConstr.constr ->
(Constr_matching.binding_bound_vars * Constr_matching.instantiated_pattern,
Tacexpr.glob_tactic_expr)
Tacexpr.match_rule
list ->
Tacexpr.glob_tactic_expr t Proofview.tactic
match_goal env sigma hyps concl rules
matches the goal hyps|-concl
with the set of matching rules rules
. The environment env
and the evar_map sigma
are used to check convertibility for pattern variables shared between hypothesis patterns or the conclusion pattern.