DISJ_CASES_THEN2 : (thm_tactic -> thm_tactical)
A ?- t A ?- t ========= f1 (u |- u) and ========= f2 (v |- v) A ?- t1 A ?- t2
A ?- t ====================== DISJ_CASES_THEN2 f1 f2 (|- u \/ v) A ?- t1 A ?- t2
th = |- (m = 0) \/ (?n. m = SUC n)
DISJ_CASES_THEN2 SUBST1_TAC ASSUME_TAC th
?n. m = SUC n ?- (PRE m = m) = (m = 0) ?- (PRE 0 = 0) = (0 = 0)
DISJ_CASES_THEN2 SUBST1_TAC (CHOOSE_THEN SUBST1_TAC) th
?- (PRE(SUC n) = SUC n) = (SUC n = 0) ?- (PRE 0 = 0) = (0 = 0)
let DISJ_CASES_THEN f = DISJ_CASES_THEN2 f f