SUBGOAL_THEN : term -> thm_tactic -> tactic
A1 ?- t1
========== f (u |- u)
A2 ?- t2
then
A1 ?- t1
==================== SUBGOAL_THEN "u" f
A1 ?- u A2 ?- t2
{n = SUC m} ?- (0 = n) ==> t
Using SUBGOAL_THEN to focus on the case in which ~(n = 0),
rewriting establishes it truth, leaving only the proof that ~(n = 0).
That is,
SUBGOAL_THEN (Term `~(0 = n)`) (fn th => REWRITE_TAC [th])generates the following subgoals:
{n = SUC m} ?- ~(0 = n)
?- T