DISCH_THEN : (thm_tactic -> tactic)
DISCH_THEN f (asl,"t1 ==> t2") = f(ASSUME "t1")(asl,"t2")For example, if
A ?- t ======== f (ASSUME "u") B ?- vthen
A ?- u ==> t ============== DISCH_THEN f B ?- vNote that DISCH_THEN treats "~u" as "u ==> F".
A ?- (x = y) ==> t ==================== DISCH_THEN (ASSUME_TAC o SYM) A u {y = x} ?- tIn many cases, it is possible to use an antecedent and then throw it away:
A ?- (x = y) ==> t x ====================== DISCH_THEN (\th. PURE_REWRITE_TAC [th]) A ?- t y