\DOC MATCH_ACCEPT_TAC \TYPE {MATCH_ACCEPT_TAC : thm_tactic} \SYNOPSIS Solves a goal which is an instance of the supplied theorem. \KEYWORDS tactic. \DESCRIBE When given a theorem {A' |- t} and a goal {A ?- t'} where {t} can be matched to {t'} by instantiating variables which are either free or universally quantified at the outer level, including appropriate type instantiation, {MATCH_ACCEPT_TAC} completely solves the goal. { A ?- t' ========= MATCH_ACCEPT_TAC (A' |- t) } Unless {A'} is a subset of {A}, this is an invalid tactic. \FAILURE Fails unless the theorem has a conclusion which is instantiable to match that of the goal. \EXAMPLE The following example shows variable and type instantiation at work. We can use the polymorphic list theorem {HD}: { HD = |- !h t. HD(CONS h t) = h } to solve the goal: { ?- HD [1;2] = 1 } simply by: { MATCH_ACCEPT_TAC HD } \SEEALSO Tactic.ACCEPT_TAC. \ENDDOC