src/Pure/tactic.ML
changeset 1209 03dc596b3a18
parent 1077 c2df11ae8b55
child 1458 fd510875fb71
equal deleted inserted replaced
1208:bc3093616ba4 1209:03dc596b3a18
    69   val resolve_tac: thm list -> int -> tactic
    69   val resolve_tac: thm list -> int -> tactic
    70   val res_inst_tac: (string*string)list -> thm -> int -> tactic   
    70   val res_inst_tac: (string*string)list -> thm -> int -> tactic   
    71   val rewrite_goals_tac: thm list -> tactic
    71   val rewrite_goals_tac: thm list -> tactic
    72   val rewrite_tac: thm list -> tactic
    72   val rewrite_tac: thm list -> tactic
    73   val rewtac: thm -> tactic
    73   val rewtac: thm -> tactic
       
    74   val rotate_tac: int -> int -> tactic
    74   val rtac: thm -> int -> tactic
    75   val rtac: thm -> int -> tactic
    75   val rule_by_tactic: tactic -> thm -> thm
    76   val rule_by_tactic: tactic -> thm -> thm
    76   val subgoal_tac: string -> int -> tactic
    77   val subgoal_tac: string -> int -> tactic
    77   val subgoals_tac: string list -> int -> tactic
    78   val subgoals_tac: string list -> int -> tactic
    78   val subgoals_of_brl: bool * thm -> int
    79   val subgoals_of_brl: bool * thm -> int
   467   end;
   468   end;
   468 
   469 
   469 (*Prunes all redundant parameters from the proof state by rewriting*)
   470 (*Prunes all redundant parameters from the proof state by rewriting*)
   470 val prune_params_tac = rewrite_tac [triv_forall_equality];
   471 val prune_params_tac = rewrite_tac [triv_forall_equality];
   471 
   472 
       
   473 (* rotate_tac n i: rotate the assumptions of subgoal i by n positions, from
       
   474  * right to left if n is positive, and from left to right if n is negative.
       
   475  *)
       
   476 fun rotate_tac n =
       
   477   let fun rot(n) = EVERY'(replicate n (dtac asm_rl));
       
   478   in if n >= 0 then rot n
       
   479      else SUBGOAL (fn (t,i) => rot(length(Logic.strip_assums_hyp t)+n) i)
       
   480   end;
       
   481 
   472 end;
   482 end;
   473 end;
   483 end;