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 ?- v
then
A ?- u ==> t
============== DISCH_THEN f
B ?- v
Note that DISCH_THEN treats "~u" as "u ==> F".
A ?- (x = y) ==> t
==================== DISCH_THEN (ASSUME_TAC o SYM)
A u {y = x} ?- t
In 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