src/HOL/Tools/Ctr_Sugar/ctr_sugar_util.ML
changeset 60752 b48830b670a1
parent 60728 26ffdb966759
child 60777 ee811a49c8f6
equal deleted inserted replaced
60751:83f04804696c 60752:b48830b670a1
   273 
   273 
   274 fun CONJ_WRAP_GEN' conj_tac gen_tac xs =
   274 fun CONJ_WRAP_GEN' conj_tac gen_tac xs =
   275   let val (butlast, last) = split_last xs;
   275   let val (butlast, last) = split_last xs;
   276   in WRAP' (fn thm => conj_tac THEN' gen_tac thm) (K (K all_tac)) butlast (gen_tac last) end;
   276   in WRAP' (fn thm => conj_tac THEN' gen_tac thm) (K (K all_tac)) butlast (gen_tac last) end;
   277 
   277 
   278 fun CONJ_WRAP gen_tac = CONJ_WRAP_GEN (rtac conjI 1) gen_tac;
   278 fun CONJ_WRAP gen_tac = CONJ_WRAP_GEN (resolve0_tac [conjI] 1) gen_tac;
   279 fun CONJ_WRAP' gen_tac = CONJ_WRAP_GEN' (rtac conjI) gen_tac;
   279 fun CONJ_WRAP' gen_tac = CONJ_WRAP_GEN' (resolve0_tac [conjI]) gen_tac;
   280 
   280 
   281 fun rtac ctxt thm = resolve_tac ctxt [thm];
   281 fun rtac ctxt thm = resolve_tac ctxt [thm];
   282 fun etac ctxt thm = eresolve_tac ctxt [thm];
   282 fun etac ctxt thm = eresolve_tac ctxt [thm];
   283 fun dtac ctxt thm = dresolve_tac ctxt [thm];
   283 fun dtac ctxt thm = dresolve_tac ctxt [thm];
   284 fun ftac ctxt thm = forward_tac ctxt [thm];
   284 fun ftac ctxt thm = forward_tac ctxt [thm];