UNDISCH_TACTactic.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
UNDISCH_TAC fails if no assumption is alpha-equivalent
to v.
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.
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