UNDISCH_TAC
Tactic.UNDISCH_TAC : term -> tactic
Undischarges an assumption and deletes all assumptions that are alpha-equivalent to it.
Let a1 to an be the assumptions that are alpha-equivalent to v,
then
A ?- t
============================== UNDISCH_TAC v
A - {a1, ..., an} ?- v ==> t
In particular, if v is among the assumptions of the goal and no other
assumption is alpha-equivalent to it, then UNDISCH_TAC behaves as the
opposite of DISCH_TAC:
A ?- t
==================== UNDISCH_TAC v
A - {v} ?- v ==> t
Failure
UNDISCH_TAC fails if no assumption is alpha-equivalent to v.
Comments
In the typical use v is among the assumptions. If only a single
assumption alpha-equivalent to v, but it is different from v then
the action of UNDISCH_TAC can be seen as undischarging followed by
alpha-conversion.
See also
Thm.DISCH, Drule.DISCH_ALL,
Tactic.DISCH_TAC,
Thm_cont.DISCH_THEN,
Drule.NEG_DISCH,
Tactic.FILTER_DISCH_TAC,
Tactic.FILTER_DISCH_THEN,
Tactic.STRIP_TAC,
Drule.UNDISCH,
Drule.UNDISCH_ALL