src/Provers/clasimp.ML
changeset 5926 58f9ca06b76b
parent 5756 8ef5288c24b0
child 5985 9481d0cfb86e
equal deleted inserted replaced
5925:669d0bc621e1 5926:58f9ca06b76b
    42   val Auto_tac	  : tactic
    42   val Auto_tac	  : tactic
    43   val auto	  : unit -> unit
    43   val auto	  : unit -> unit
    44   val force_tac	  : clasimpset  -> int -> tactic
    44   val force_tac	  : clasimpset  -> int -> tactic
    45   val Force_tac	  : int -> tactic
    45   val Force_tac	  : int -> tactic
    46   val force	  : int -> unit
    46   val force	  : int -> unit
       
    47   val setup	  : (theory -> theory) list
    47 end;
    48 end;
    48 
    49 
    49 functor ClasimpFun(Data: CLASIMP_DATA): CLASIMP =
    50 functor ClasimpFun(Data: CLASIMP_DATA): CLASIMP =
    50 struct
    51 struct
    51 
    52 
   144 	ALLGOALS (Classical.best_tac cs')]) end;
   145 	ALLGOALS (Classical.best_tac cs')]) end;
   145 fun Force_tac i = force_tac (Classical.claset(), Simplifier.simpset()) i;
   146 fun Force_tac i = force_tac (Classical.claset(), Simplifier.simpset()) i;
   146 fun force i = by (Force_tac i);
   147 fun force i = by (Force_tac i);
   147 
   148 
   148 
   149 
       
   150 (* methods *)
       
   151 
       
   152 fun get_local_clasimpset ctxt = (Classical.get_local_claset ctxt, Simplifier.get_local_simpset ctxt);
       
   153 
       
   154 val clasimp_modifiers = Classical.cla_modifiers @ Simplifier.simp_modifiers;
       
   155 val clasimp_args = Method.only_sectioned_args clasimp_modifiers;
       
   156 
       
   157 fun clasimp_meth tac ctxt = Method.METHOD0 (tac (get_local_clasimpset ctxt));
       
   158 fun clasimp_meth' tac ctxt = Method.METHOD0 (FIRSTGOAL (tac (get_local_clasimpset ctxt)));
       
   159 
       
   160 val clasimp_method = clasimp_args o clasimp_meth;
       
   161 val clasimp_method' = clasimp_args o clasimp_meth';
       
   162 
       
   163 
       
   164 val setup =
       
   165  [Method.add_methods
       
   166    [("clarsimp", clasimp_method' clarsimp_tac, "clarsimp"),
       
   167     ("auto", clasimp_method auto_tac, "auto"),
       
   168     ("force", clasimp_method' force_tac, "force")]];
       
   169 
       
   170 
   149 end;
   171 end;