Given the theorem
th = |- (m = 0) \/ (?n. m = SUC n)
and a goal of the form ?- (PRE m = m) = (m = 0),
applying the tactic
DISJ_CASES_THEN2 SUBST1_TAC ASSUME_TAC th
to the goal will produce two subgoals
?n. m = SUC n ?- (PRE m = m) = (m = 0)
?- (PRE 0 = 0) = (0 = 0)
The first subgoal has had the disjunct m = 0 used
for a substitution, and the second has added the disjunct to the
assumption list. Alternatively, applying the tactic
DISJ_CASES_THEN2 SUBST1_TAC (CHOOSE_THEN SUBST1_TAC) th
to the goal produces the subgoals:
?- (PRE(SUC n) = SUC n) = (SUC n = 0)
?- (PRE 0 = 0) = (0 = 0)