FILTER_DISCH_THENTactic.FILTER_DISCH_THEN : (thm_tactic -> term -> tactic)
Conditionally gives to a theorem-tactic the antecedent of an implicative goal.
If FILTER_DISCH_THEN’s second argument, a term, does not
occur in the antecedent, then FILTER_DISCH_THEN removes the
antecedent and then creates a theorem by ASSUMEing it. This
new theorem is passed to FILTER_DISCH_THEN’s first
argument, which is subsequently expanded. For example, if
A ?- t
======== f (ASSUME u)
B ?- v
then
A ?- u ==> t
============== FILTER_DISCH_THEN f
B ?- v
Note that FILTER_DISCH_THEN treats ~u as
u ==> F.
FILTER_DISCH_THEN will fail if a term which is
identical, or alpha-equivalent to w occurs free in the
antecedent. FILTER_DISCH_THEN will also fail if the theorem
is an implication or a negation.
FILTER_DISCH_THEN is most easily understood by first
understanding DISCH_THEN.
For preprocessing an antecedent before moving it to the assumptions, or for using antecedents and then throwing them away.
Thm.DISCH, Drule.DISCH_ALL, Tactic.DISCH_TAC, Thm_cont.DISCH_THEN, Tactic.FILTER_DISCH_TAC,
Drule.NEG_DISCH, Tactic.STRIP_TAC, Drule.UNDISCH, Drule.UNDISCH_ALL, Tactic.UNDISCH_TAC