src/Pure/Isar/isar_cmd.ML
changeset 62913 13252110a6fe
parent 62169 a6047f511de7
child 62922 96691631c1eb
equal deleted inserted replaced
62912:745d31e63c21 62913:13252110a6fe
    16   val translations: (xstring * string) Syntax.trrule list -> theory -> theory
    16   val translations: (xstring * string) Syntax.trrule list -> theory -> theory
    17   val no_translations: (xstring * string) Syntax.trrule list -> theory -> theory
    17   val no_translations: (xstring * string) Syntax.trrule list -> theory -> theory
    18   val oracle: bstring * Position.range -> Input.source -> theory -> theory
    18   val oracle: bstring * Position.range -> Input.source -> theory -> theory
    19   val declaration: {syntax: bool, pervasive: bool} -> Input.source -> local_theory -> local_theory
    19   val declaration: {syntax: bool, pervasive: bool} -> Input.source -> local_theory -> local_theory
    20   val simproc_setup: string * Position.T -> string list -> Input.source ->
    20   val simproc_setup: string * Position.T -> string list -> Input.source ->
    21     string list -> local_theory -> local_theory
    21     local_theory -> local_theory
    22   val qed: Method.text_range option -> Toplevel.transition -> Toplevel.transition
    22   val qed: Method.text_range option -> Toplevel.transition -> Toplevel.transition
    23   val terminal_proof: Method.text_range * Method.text_range option ->
    23   val terminal_proof: Method.text_range * Method.text_range option ->
    24     Toplevel.transition -> Toplevel.transition
    24     Toplevel.transition -> Toplevel.transition
    25   val default_proof: Toplevel.transition -> Toplevel.transition
    25   val default_proof: Toplevel.transition -> Toplevel.transition
    26   val immediate_proof: Toplevel.transition -> Toplevel.transition
    26   val immediate_proof: Toplevel.transition -> Toplevel.transition
   149   |> Context.proof_map;
   149   |> Context.proof_map;
   150 
   150 
   151 
   151 
   152 (* simprocs *)
   152 (* simprocs *)
   153 
   153 
   154 fun simproc_setup name lhss source identifier =
   154 fun simproc_setup name lhss source =
   155   ML_Lex.read_source false source
   155   ML_Lex.read_source false source
   156   |> ML_Context.expression (Input.range_of source) "proc"
   156   |> ML_Context.expression (Input.range_of source) "proc"
   157     "Morphism.morphism -> Proof.context -> cterm -> thm option"
   157     "Morphism.morphism -> Proof.context -> cterm -> thm option"
   158     ("Context.map_proof (Simplifier.define_simproc_cmd " ^
   158     ("Context.map_proof (Simplifier.define_simproc_cmd " ^
   159       ML_Syntax.atomic (ML_Syntax.make_binding name) ^
   159       ML_Syntax.atomic (ML_Syntax.make_binding name) ^
   160       "{lhss = " ^ ML_Syntax.print_strings lhss ^ ", proc = proc, \
   160       "{lhss = " ^ ML_Syntax.print_strings lhss ^ ", proc = proc})")
   161       \identifier = Library.maps ML_Context.thms " ^ ML_Syntax.print_strings identifier ^ "})")
       
   162   |> Context.proof_map;
   161   |> Context.proof_map;
   163 
   162 
   164 
   163 
   165 (* local endings *)
   164 (* local endings *)
   166 
   165