tuned;
authorwenzelm
Tue, 21 Jun 2016 11:03:24 +0200
changeset 63336 054a92af0f2b
parent 63335 d98164344ec1
child 63337 ae9330fdbc16
tuned;
src/Pure/Isar/attrib.ML
--- a/src/Pure/Isar/attrib.ML	Tue Jun 21 10:41:29 2016 +0200
+++ b/src/Pure/Isar/attrib.ML	Tue Jun 21 11:03:24 2016 +0200
@@ -6,21 +6,18 @@
 
 signature ATTRIB =
 sig
-  type binding = binding * Token.src list
-  val empty_binding: binding
-  val is_empty_binding: binding -> bool
+  val empty_binding: Attrib.binding
+  val is_empty_binding: Attrib.binding -> bool
   val print_attributes: bool -> Proof.context -> unit
-  val define_global: Binding.binding -> (Token.src -> attribute) ->
-    string -> theory -> string * theory
-  val define: Binding.binding -> (Token.src -> attribute) ->
-    string -> local_theory -> string * local_theory
+  val define_global: binding -> (Token.src -> attribute) -> string -> theory -> string * theory
+  val define: binding -> (Token.src -> attribute) -> string -> local_theory -> string * local_theory
   val check_name_generic: Context.generic -> xstring * Position.T -> string
   val check_name: Proof.context -> xstring * Position.T -> string
   val check_src: Proof.context -> Token.src -> Token.src
   val attribs: Token.src list context_parser
   val opt_attribs: Token.src list context_parser
   val pretty_attribs: Proof.context -> Token.src list -> Pretty.T list
-  val pretty_binding: Proof.context -> binding -> string -> Pretty.T list
+  val pretty_binding: Proof.context -> Attrib.binding -> string -> Pretty.T list
   val attribute: Proof.context -> Token.src -> attribute
   val attribute_global: theory -> Token.src -> attribute
   val attribute_cmd: Proof.context -> Token.src -> attribute
@@ -34,16 +31,16 @@
     (('c * 'a list) * ('b * 'a list) list) list ->
     (('c * 'att list) * ('fact * 'att list) list) list
   type thms = (thm list * Token.src list) list
-  val global_notes: string -> (binding * thms) list ->
+  val global_notes: string -> (Attrib.binding * thms) list ->
     theory -> (string * thm list) list * theory
-  val local_notes: string -> (binding * thms) list ->
+  val local_notes: string -> (Attrib.binding * thms) list ->
     Proof.context -> (string * thm list) list * Proof.context
-  val generic_notes: string -> (binding * thms) list ->
+  val generic_notes: string -> (Attrib.binding * thms) list ->
     Context.generic -> (string * thm list) list * Context.generic
   val eval_thms: Proof.context -> (Facts.ref * Token.src list) list -> thm list
   val attribute_syntax: attribute context_parser -> Token.src -> attribute
-  val setup: Binding.binding -> attribute context_parser -> string -> theory -> theory
-  val local_setup: Binding.binding -> attribute context_parser -> string ->
+  val setup: binding -> attribute context_parser -> string -> theory -> theory
+  val local_setup: binding -> attribute context_parser -> string ->
     local_theory -> local_theory
   val attribute_setup: bstring * Position.T -> Input.source -> string ->
     local_theory -> local_theory
@@ -54,20 +51,17 @@
   val thms: thm list context_parser
   val multi_thm: thm list context_parser
   val transform_facts: morphism -> (Attrib.binding * thms) list -> (Attrib.binding * thms) list
-  val partial_evaluation: Proof.context -> (binding * thms) list -> (binding * thms) list
+  val partial_evaluation: Proof.context ->
+    (Attrib.binding * thms) list -> (Attrib.binding * thms) list
   val print_options: bool -> Proof.context -> unit
-  val config_bool: Binding.binding ->
-    (Context.generic -> bool) -> bool Config.T * (theory -> theory)
-  val config_int: Binding.binding ->
-    (Context.generic -> int) -> int Config.T * (theory -> theory)
-  val config_real: Binding.binding ->
-    (Context.generic -> real) -> real Config.T * (theory -> theory)
-  val config_string: Binding.binding ->
-    (Context.generic -> string) -> string Config.T * (theory -> theory)
-  val setup_config_bool: Binding.binding -> (Context.generic -> bool) -> bool Config.T
-  val setup_config_int: Binding.binding -> (Context.generic -> int) -> int Config.T
-  val setup_config_real: Binding.binding -> (Context.generic -> real) -> real Config.T
-  val setup_config_string: Binding.binding -> (Context.generic -> string) -> string Config.T
+  val config_bool: binding -> (Context.generic -> bool) -> bool Config.T * (theory -> theory)
+  val config_int: binding -> (Context.generic -> int) -> int Config.T * (theory -> theory)
+  val config_real: binding -> (Context.generic -> real) -> real Config.T * (theory -> theory)
+  val config_string: binding -> (Context.generic -> string) -> string Config.T * (theory -> theory)
+  val setup_config_bool: binding -> (Context.generic -> bool) -> bool Config.T
+  val setup_config_int: binding -> (Context.generic -> int) -> int Config.T
+  val setup_config_real: binding -> (Context.generic -> real) -> real Config.T
+  val setup_config_string: binding -> (Context.generic -> string) -> string Config.T
   val option_bool: string * Position.T -> bool Config.T * (theory -> theory)
   val option_int: string * Position.T -> int Config.T * (theory -> theory)
   val option_real: string * Position.T -> real Config.T * (theory -> theory)
@@ -83,12 +77,12 @@
   val case_conclusion: string * string list -> Token.src
 end;
 
-structure Attrib: ATTRIB =
+structure Attrib: sig type binding = Attrib.binding include ATTRIB end =
 struct
 
 (* source and bindings *)
 
-type binding = binding * Token.src list;
+type binding = Attrib.binding;
 
 val empty_binding: binding = (Binding.empty, []);
 fun is_empty_binding ((b, srcs): binding) = Binding.is_empty b andalso null srcs;