modernized setup;
authorwenzelm
Wed, 29 Oct 2014 19:13:19 +0100
changeset 58828 6d076fdd933d
parent 58826 2ed2eaabe3df
child 58829 38340f6e971e
modernized setup;
src/ZF/Inductive_ZF.thy
src/ZF/Tools/ind_cases.ML
src/ZF/Tools/induct_tacs.ML
src/ZF/Tools/typechk.ML
src/ZF/upair.thy
--- a/src/ZF/Inductive_ZF.thy	Wed Oct 29 19:01:49 2014 +0100
+++ b/src/ZF/Inductive_ZF.thy	Wed Oct 29 19:13:19 2014 +0100
@@ -34,9 +34,6 @@
 ML_file "Tools/induct_tacs.ML"
 ML_file "Tools/primrec_package.ML"
 
-setup IndCases.setup
-setup DatatypeTactics.setup
-
 ML {*
 structure Lfp =
   struct
--- a/src/ZF/Tools/ind_cases.ML	Wed Oct 29 19:01:49 2014 +0100
+++ b/src/ZF/Tools/ind_cases.ML	Wed Oct 29 19:13:19 2014 +0100
@@ -8,7 +8,6 @@
 sig
   val declare: string -> (Proof.context -> conv) -> theory -> theory
   val inductive_cases: (Attrib.binding * string list) list -> theory -> theory
-  val setup: theory -> theory
 end;
 
 structure IndCases: IND_CASES =
@@ -52,23 +51,21 @@
         map (Thm.no_attributes o single o smart_cases ctxt) props));
   in thy |> Global_Theory.note_thmss "" facts |> snd end;
 
-
-(* ind_cases method *)
-
-val setup =
-  Method.setup @{binding "ind_cases"}
-    (Scan.lift (Scan.repeat1 Args.name_inner_syntax) >>
-      (fn props => fn ctxt => Method.erule ctxt 0 (map (smart_cases ctxt) props)))
-    "dynamic case analysis on sets";
-
-
-(* outer syntax *)
-
 val _ =
   Outer_Syntax.command @{command_spec "inductive_cases"}
     "create simplified instances of elimination rules (improper)"
     (Parse.and_list1 (Parse_Spec.opt_thm_name ":" -- Scan.repeat1 Parse.prop)
       >> (Toplevel.theory o inductive_cases));
 
+
+(* ind_cases method *)
+
+val _ =
+  Theory.setup
+    (Method.setup @{binding "ind_cases"}
+      (Scan.lift (Scan.repeat1 Args.name_inner_syntax) >>
+        (fn props => fn ctxt => Method.erule ctxt 0 (map (smart_cases ctxt) props)))
+      "dynamic case analysis on sets");
+
 end;
 
--- a/src/ZF/Tools/induct_tacs.ML	Wed Oct 29 19:01:49 2014 +0100
+++ b/src/ZF/Tools/induct_tacs.ML	Wed Oct 29 19:13:19 2014 +0100
@@ -14,7 +14,6 @@
   val rep_datatype_i: thm -> thm -> thm list -> thm list -> theory -> theory
   val rep_datatype: Facts.ref * Token.src list -> Facts.ref * Token.src list ->
     (Facts.ref * Token.src list) list -> (Facts.ref * Token.src list) list -> theory -> theory
-  val setup: theory -> theory
 end;
 
 
@@ -175,15 +174,16 @@
 
 (* theory setup *)
 
-val setup =
-  Method.setup @{binding induct_tac}
-    (Args.goal_spec -- Scan.lift Args.name >>
-      (fn (quant, s) => fn ctxt => SIMPLE_METHOD'' quant (induct_tac ctxt s)))
-    "induct_tac emulation (dynamic instantiation!)" #>
-  Method.setup @{binding case_tac}
-   (Args.goal_spec -- Scan.lift Args.name >>
-      (fn (quant, s) => fn ctxt => SIMPLE_METHOD'' quant (exhaust_tac ctxt s)))
-    "datatype case_tac emulation (dynamic instantiation!)";
+val _ =
+  Theory.setup
+    (Method.setup @{binding induct_tac}
+      (Args.goal_spec -- Scan.lift Args.name >>
+        (fn (quant, s) => fn ctxt => SIMPLE_METHOD'' quant (induct_tac ctxt s)))
+      "induct_tac emulation (dynamic instantiation!)" #>
+    Method.setup @{binding case_tac}
+     (Args.goal_spec -- Scan.lift Args.name >>
+        (fn (quant, s) => fn ctxt => SIMPLE_METHOD'' quant (exhaust_tac ctxt s)))
+      "datatype case_tac emulation (dynamic instantiation!)");
 
 
 (* outer syntax *)
--- a/src/ZF/Tools/typechk.ML	Wed Oct 29 19:01:49 2014 +0100
+++ b/src/ZF/Tools/typechk.ML	Wed Oct 29 19:13:19 2014 +0100
@@ -13,7 +13,6 @@
   val typecheck_tac: Proof.context -> tactic
   val type_solver_tac: Proof.context -> thm list -> int -> tactic
   val type_solver: solver
-  val setup: theory -> theory
 end;
 
 structure TypeCheck: TYPE_CHECK =
@@ -109,28 +108,25 @@
   Simplifier.mk_solver "ZF typecheck" (fn ctxt =>
     type_solver_tac ctxt (Simplifier.prems_of ctxt));
 
+val _ = Theory.setup (map_theory_simpset (fn ctxt => ctxt setSolver type_solver));
+
 
 (* concrete syntax *)
 
-val typecheck_setup =
-  Method.setup @{binding typecheck}
-    (Method.sections
-      [Args.add -- Args.colon >> K (Method.modifier TC_add @{here}),
-       Args.del -- Args.colon >> K (Method.modifier TC_del @{here})]
-      >> K (fn ctxt => SIMPLE_METHOD (CHANGED (typecheck_tac ctxt))))
-    "ZF type-checking";
+val _ =
+  Theory.setup
+   (Attrib.setup @{binding TC} (Attrib.add_del TC_add TC_del)
+      "declaration of type-checking rule" #>
+    Method.setup @{binding typecheck}
+      (Method.sections
+        [Args.add -- Args.colon >> K (Method.modifier TC_add @{here}),
+         Args.del -- Args.colon >> K (Method.modifier TC_del @{here})]
+        >> K (fn ctxt => SIMPLE_METHOD (CHANGED (typecheck_tac ctxt))))
+      "ZF type-checking");
 
 val _ =
   Outer_Syntax.improper_command @{command_spec "print_tcset"} "print context of ZF typecheck"
     (Scan.succeed (Toplevel.unknown_context o
       Toplevel.keep (print_tcset o Toplevel.context_of)));
 
-
-(* theory setup *)
-
-val setup =
-  Attrib.setup @{binding TC} (Attrib.add_del TC_add TC_del) "declaration of type-checking rule" #>
-  typecheck_setup #>
-  map_theory_simpset (fn ctxt => ctxt setSolver type_solver);
-
 end;
--- a/src/ZF/upair.thy	Wed Oct 29 19:01:49 2014 +0100
+++ b/src/ZF/upair.thy	Wed Oct 29 19:13:19 2014 +0100
@@ -17,7 +17,6 @@
 begin
 
 ML_file "Tools/typechk.ML"
-setup TypeCheck.setup
 
 lemma atomize_ball [symmetric, rulify]:
      "(!!x. x \<in> A ==> P(x)) == Trueprop (\<forall>x\<in>A. P(x))"