equal
deleted
inserted
replaced
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; |