equal
deleted
inserted
replaced
199 val exh_vname = implode (tl (explode (Syntax.string_of_vname ixn))) |
199 val exh_vname = implode (tl (explode (Syntax.string_of_vname ixn))) |
200 in res_inst_tac [(exh_vname, aterm)] exhaustion i state end |
200 in res_inst_tac [(exh_vname, aterm)] exhaustion i state end |
201 end; |
201 end; |
202 |
202 |
203 |
203 |
|
204 (** Isar tactic emulations **) |
|
205 |
|
206 fun tactic_syntax tac = #2 oo Method.syntax (Args.goal_spec HEADGOAL -- Scan.lift Args.name >> |
|
207 (fn (quant, s) => Method.METHOD (fn facts => quant (Method.insert_tac facts THEN' tac s)))); |
|
208 |
|
209 val tactic_emulations = |
|
210 [("induct_tac", tactic_syntax induct_tac, "induct_tac emulation (dynamic instantiation!)"), |
|
211 ("case_tac", tactic_syntax case_tac, "case_tac emulation (dynamic instantiation!)")]; |
|
212 |
|
213 |
204 |
214 |
205 (** induct method setup **) |
215 (** induct method setup **) |
206 |
216 |
207 (* case names *) |
217 (* case names *) |
208 |
218 |
772 |
782 |
773 (** package setup **) |
783 (** package setup **) |
774 |
784 |
775 (* setup theory *) |
785 (* setup theory *) |
776 |
786 |
777 val setup = [DatatypesData.init] @ simproc_setup; |
787 val setup = [DatatypesData.init, Method.add_methods tactic_emulations] @ simproc_setup; |
778 |
788 |
779 |
789 |
780 (* outer syntax *) |
790 (* outer syntax *) |
781 |
791 |
782 local structure P = OuterParse and K = OuterSyntax.Keyword in |
792 local structure P = OuterParse and K = OuterSyntax.Keyword in |