X_CASES_THEN : term list list -> thm_tactical
th = |-(?xl1.B1) \/...\/ (?xln.Bn)each disjunct having the form (?xi1 ... xim. Bi). If applying f to the theorem obtained by introducing witness variables yli for the objects xli whose existence is asserted by each disjunct, typically ({Bi[yli/xli]} |- Bi[yli/xli]), produce the following results when applied to a goal (A ?- t):
A ?- t ========= f ({B1[yl1/xl1]} |- B1[yl1/xl1]) A ?- t1 ... A ?- t ========= f ({Bn[yln/xln]} |- Bn[yln/xln]) A ?- tnthen applying (X_CHOOSE_THEN [yl1,...,yln] f th) to the goal (A ?- t) produces n subgoals.
A ?- t ======================= X_CHOOSE_THEN [yl1,...,yln] f th A ?- t1 ... A ?- tn
th = |- (?m. x = 2 * m) \/ (?m. x = (2 * m) + 1)by the tactic
X_CASES_THEN [[Term`n:num`],[Term`n:num]] ASSUME_TAC thto produce the subgoals:
{x = (2 * n) + 1} ?- (x MOD 2) <= 1 {x = 2 * n} ?- (x MOD 2) <= 1