src/Pure/tactic.ML
changeset 7491 95a4af0e10a7
parent 7248 322151fe6f02
child 7596 c97c3ad15d2e
equal deleted inserted replaced
7490:9a74b57740d1 7491:95a4af0e10a7
    28   val compose_inst_tac	: (string*string)list -> (bool*thm*int) -> 
    28   val compose_inst_tac	: (string*string)list -> (bool*thm*int) -> 
    29                           int -> tactic
    29                           int -> tactic
    30   val compose_tac	: (bool * thm * int) -> int -> tactic 
    30   val compose_tac	: (bool * thm * int) -> int -> tactic 
    31   val cut_facts_tac	: thm list -> int -> tactic
    31   val cut_facts_tac	: thm list -> int -> tactic
    32   val cut_inst_tac	: (string*string)list -> thm -> int -> tactic   
    32   val cut_inst_tac	: (string*string)list -> thm -> int -> tactic   
       
    33   val datac             : thm -> int -> int -> tactic
    33   val defer_tac 	: int -> tactic
    34   val defer_tac 	: int -> tactic
    34   val distinct_subgoals_tac	: tactic
    35   val distinct_subgoals_tac	: tactic
    35   val dmatch_tac	: thm list -> int -> tactic
    36   val dmatch_tac	: thm list -> int -> tactic
    36   val dresolve_tac	: thm list -> int -> tactic
    37   val dresolve_tac	: thm list -> int -> tactic
    37   val dres_inst_tac	: (string*string)list -> thm -> int -> tactic   
    38   val dres_inst_tac	: (string*string)list -> thm -> int -> tactic   
    38   val dtac		: thm -> int ->tactic
    39   val dtac		: thm -> int ->tactic
       
    40   val eatac             : thm -> int -> int -> tactic
    39   val etac		: thm -> int ->tactic
    41   val etac		: thm -> int ->tactic
    40   val eq_assume_tac	: int -> tactic   
    42   val eq_assume_tac	: int -> tactic   
    41   val ematch_tac	: thm list -> int -> tactic
    43   val ematch_tac	: thm list -> int -> tactic
    42   val eresolve_tac	: thm list -> int -> tactic
    44   val eresolve_tac	: thm list -> int -> tactic
    43   val eres_inst_tac	: (string*string)list -> thm -> int -> tactic
    45   val eres_inst_tac	: (string*string)list -> thm -> int -> tactic
       
    46   val fatac             : thm -> int -> int -> tactic
    44   val filter_prems_tac  : (term -> bool) -> int -> tactic  
    47   val filter_prems_tac  : (term -> bool) -> int -> tactic  
    45   val filter_thms	: (term*term->bool) -> int*term*thm list -> thm list
    48   val filter_thms	: (term*term->bool) -> int*term*thm list -> thm list
    46   val filt_resolve_tac	: thm list -> int -> int -> tactic
    49   val filt_resolve_tac	: thm list -> int -> int -> tactic
    47   val flexflex_tac	: tactic
    50   val flexflex_tac	: tactic
    48   val fold_goals_tac	: thm list -> tactic
    51   val fold_goals_tac	: thm list -> tactic
    49   val fold_tac		: thm list -> tactic
    52   val fold_tac		: thm list -> tactic
    50   val forward_tac	: thm list -> int -> tactic   
    53   val forward_tac	: thm list -> int -> tactic   
    51   val forw_inst_tac	: (string*string)list -> thm -> int -> tactic
    54   val forw_inst_tac	: (string*string)list -> thm -> int -> tactic
       
    55   val ftac		: thm -> int ->tactic
    52   val insert_tagged_brl : ('a*(bool*thm)) * 
    56   val insert_tagged_brl : ('a*(bool*thm)) * 
    53                           (('a*(bool*thm))Net.net * ('a*(bool*thm))Net.net) ->
    57                           (('a*(bool*thm))Net.net * ('a*(bool*thm))Net.net) ->
    54                           ('a*(bool*thm))Net.net * ('a*(bool*thm))Net.net
    58                           ('a*(bool*thm))Net.net * ('a*(bool*thm))Net.net
    55   val delete_tagged_brl	: (bool*thm) * 
    59   val delete_tagged_brl	: (bool*thm) * 
    56                          ((int*(bool*thm))Net.net * (int*(bool*thm))Net.net) ->
    60                          ((int*(bool*thm))Net.net * (int*(bool*thm))Net.net) ->
   154 
   158 
   155 (*Like forward_tac, but deletes the assumption after use.*)
   159 (*Like forward_tac, but deletes the assumption after use.*)
   156 fun dresolve_tac rls = eresolve_tac (map make_elim rls);
   160 fun dresolve_tac rls = eresolve_tac (map make_elim rls);
   157 
   161 
   158 (*Shorthand versions: for resolution with a single theorem*)
   162 (*Shorthand versions: for resolution with a single theorem*)
   159 fun rtac rl = resolve_tac [rl];
   163 val atac    =   assume_tac;
       
   164 fun rtac rl =  resolve_tac [rl];
       
   165 fun dtac rl = dresolve_tac [rl];
   160 fun etac rl = eresolve_tac [rl];
   166 fun etac rl = eresolve_tac [rl];
   161 fun dtac rl = dresolve_tac [rl];
   167 fun ftac rl =  forward_tac [rl];
   162 val atac = assume_tac;
   168 fun datac thm j = EVERY' (dtac thm::replicate j atac);
       
   169 fun eatac thm j = EVERY' (etac thm::replicate j atac);
       
   170 fun fatac thm j = EVERY' (ftac thm::replicate j atac);
   163 
   171 
   164 (*Use an assumption or some rules ... A popular combination!*)
   172 (*Use an assumption or some rules ... A popular combination!*)
   165 fun ares_tac rules = assume_tac  ORELSE'  resolve_tac rules;
   173 fun ares_tac rules = assume_tac  ORELSE'  resolve_tac rules;
   166 
   174 
   167 fun solve_tac rules = resolve_tac rules THEN_ALL_NEW assume_tac;
   175 fun solve_tac rules = resolve_tac rules THEN_ALL_NEW assume_tac;