CHOOSE_THEN : thm_tactical
    A ?- s1
   =========  ttac (t[x'/x] |- t[x'/x])
    B ?- s2
    A ?- s1
   ==========  CHOOSE_THEN ttac (A' |- ?x. t)
    B ?- s2
LT_EXISTS = |- !m n. m < n <=> (?d. n = m + SUC d)
# g `x < y ==> 0 < y * y`;;
# e(DISCH_THEN(CHOOSE_THEN SUBST1_TAC o REWRITE_RULE[LT_EXISTS]));;
val it : goalstack = 1 subgoal (1 total) `0 < (x + SUC d) * (x + SUC d)`
# e(REWRITE_TAC[ADD_CLAUSES; MULT_CLAUSES; LT_0]);;