FIRST_ASSUM : (thm_tactic -> tactic)
FIRST_ASSUM ttac ([A1; ...; An], g)has the effect of applying the first tactic which can be produced by ttac from the ASSUMEd assumptions (A1 |- A1), ..., (An |- An) and which succeeds when applied to the goal. Failures of ttac to produce a tactic are ignored.
FIRST_ASSUM (\asm. CONTR_TAC asm ORELSE ACCEPT_TAC asm)searches the assumptions for either a contradiction or the desired conclusion. The tactic
FIRST_ASSUM MATCH_MP_TACsearches the assumption list for an implication whose conclusion matches the goal, reducing the goal to the antecedent of the corresponding instance of this implication.