Module Ltac_plugin.Tactic_matching

type 'a t = {
subst : Constr_matching.bound_ident_map * Ltac_pretype.extended_patvar_map;
context : EConstr.constr 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 Matching.matching_result), and a Term.constr substitution mapping corresponding to matched hypotheses.

val match_term : Environ.env -> Evd.evar_map -> EConstr.constr -> (Constr_matching.binding_bound_vars * Pattern.constr_patternTacexpr.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 * Pattern.constr_patternTacexpr.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.