src/HOL/Tools/Meson/meson.ML
changeset 42616 92715b528e78
parent 42455 6702c984bf5a
child 42739 017e5dac8642
equal deleted inserted replaced
42607:c8673078f915 42616:92715b528e78
    38   val iter_deepen_prolog_tac: thm list -> tactic
    38   val iter_deepen_prolog_tac: thm list -> tactic
    39   val iter_deepen_meson_tac: Proof.context -> thm list -> int -> tactic
    39   val iter_deepen_meson_tac: Proof.context -> thm list -> int -> tactic
    40   val make_meta_clause: thm -> thm
    40   val make_meta_clause: thm -> thm
    41   val make_meta_clauses: thm list -> thm list
    41   val make_meta_clauses: thm list -> thm list
    42   val meson_tac: Proof.context -> thm list -> int -> tactic
    42   val meson_tac: Proof.context -> thm list -> int -> tactic
    43   val setup : theory -> theory
       
    44 end
    43 end
    45 
    44 
    46 structure Meson : MESON =
    45 structure Meson : MESON =
    47 struct
    46 struct
    48 
    47 
    49 val (trace, trace_setup) = Attrib.config_bool "meson_trace" (K false)
    48 val trace = Attrib.setup_config_bool @{binding meson_trace} (K false)
    50 
    49 
    51 fun trace_msg ctxt msg = if Config.get ctxt trace then tracing (msg ()) else ()
    50 fun trace_msg ctxt msg = if Config.get ctxt trace then tracing (msg ()) else ()
    52 
    51 
    53 val max_clauses_default = 60
    52 val max_clauses_default = 60
    54 val (max_clauses, max_clauses_setup) =
    53 val max_clauses = Attrib.setup_config_int @{binding meson_max_clauses} (K max_clauses_default)
    55   Attrib.config_int "meson_max_clauses" (K max_clauses_default)
       
    56 
    54 
    57 (*No known example (on 1-5-2007) needs even thirty*)
    55 (*No known example (on 1-5-2007) needs even thirty*)
    58 val iter_deepen_limit = 50;
    56 val iter_deepen_limit = 50;
    59 
    57 
    60 val disj_forward = @{thm disj_forward};
    58 val disj_forward = @{thm disj_forward};
   736 
   734 
   737 fun make_meta_clauses ths =
   735 fun make_meta_clauses ths =
   738     name_thms "MClause#"
   736     name_thms "MClause#"
   739       (distinct Thm.eq_thm_prop (map make_meta_clause ths));
   737       (distinct Thm.eq_thm_prop (map make_meta_clause ths));
   740 
   738 
   741 val setup =
       
   742   trace_setup
       
   743   #> max_clauses_setup
       
   744 
       
   745 end;
   739 end;