src/Provers/clasimp.ML
changeset 4717 1370ad043564
parent 4659 a78ecc7341e3
child 4884 1ec740e30811
equal deleted inserted replaced
4716:a291e858061c 4717:1370ad043564
    26   val addss	: claset * simpset -> claset
    26   val addss	: claset * simpset -> claset
    27   val mk_auto_tac:clasimpset -> int -> int -> tactic
    27   val mk_auto_tac:clasimpset -> int -> int -> tactic
    28   val auto_tac	: clasimpset -> tactic
    28   val auto_tac	: clasimpset -> tactic
    29   val Auto_tac	: tactic
    29   val Auto_tac	: tactic
    30   val auto	: unit -> unit
    30   val auto	: unit -> unit
    31   val smart_tac	: clasimpset  -> int -> tactic
    31   val force_tac	: clasimpset  -> int -> tactic
    32   val Smart_tac	: int -> tactic
    32   val Force_tac	: int -> tactic
    33   val smart	: int -> unit
    33   val force	: int -> unit
    34 end;
    34 end;
    35 
    35 
    36 structure Clasimp: CLASIMP =
    36 structure Clasimp: CLASIMP =
    37 struct
    37 struct
    38 
    38 
   112 fun Auto_tac st = auto_tac (claset(), simpset()) st;
   112 fun Auto_tac st = auto_tac (claset(), simpset()) st;
   113 
   113 
   114 fun auto () = by Auto_tac;
   114 fun auto () = by Auto_tac;
   115 
   115 
   116 (* aimed to solve the given subgoal totally, using whatever tools possible *)
   116 (* aimed to solve the given subgoal totally, using whatever tools possible *)
   117 fun smart_tac (cs,ss) = let val cs' = cs addss ss in SELECT_GOAL (EVERY [
   117 fun force_tac (cs,ss) = let val cs' = cs addss ss in SELECT_GOAL (EVERY [
   118 	clarify_tac cs' 1,
   118 	clarify_tac cs' 1,
   119 	IF_UNSOLVED (asm_full_simp_tac ss 1),
   119 	IF_UNSOLVED (asm_full_simp_tac ss 1),
   120 	IF_UNSOLVED (fast_tac cs' 1)]) end;
   120 	ALLGOALS (fast_tac cs')]) end;
   121 fun Smart_tac i = smart_tac (claset(), simpset()) i;
   121 fun Force_tac i = force_tac (claset(), simpset()) i;
   122 fun smart i = by (Smart_tac i);
   122 fun force i = by (Force_tac i);
   123 
   123 
   124 end;
   124 end;