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