src/HOL/Tools/Sledgehammer/sledgehammer_isar.ML
changeset 44434 ae612a423dad
parent 44431 b342cd125533
child 44493 a867ebb12209
     1.1 --- a/src/HOL/Tools/Sledgehammer/sledgehammer_isar.ML	Mon Jun 27 14:56:26 2011 +0200
     1.2 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer_isar.ML	Mon Jun 27 14:56:28 2011 +0200
     1.3 @@ -85,6 +85,7 @@
     1.4     ("overlord", "false"),
     1.5     ("blocking", "false"),
     1.6     ("type_sys", "smart"),
     1.7 +   ("sound", "false"),
     1.8     ("relevance_thresholds", "0.45 0.85"),
     1.9     ("max_relevant", "smart"),
    1.10     ("max_mono_iters", "3"),
    1.11 @@ -101,11 +102,12 @@
    1.12     ("quiet", "verbose"),
    1.13     ("no_overlord", "overlord"),
    1.14     ("non_blocking", "blocking"),
    1.15 +   ("unsound", "sound"),
    1.16     ("no_isar_proof", "isar_proof"),
    1.17     ("no_slicing", "slicing")]
    1.18  
    1.19  val params_for_minimize =
    1.20 -  ["debug", "verbose", "overlord", "type_sys", "max_mono_iters",
    1.21 +  ["debug", "verbose", "overlord", "type_sys", "sound", "max_mono_iters",
    1.22     "max_new_mono_instances", "isar_proof", "isar_shrink_factor", "timeout",
    1.23     "preplay_timeout"]
    1.24  
    1.25 @@ -122,7 +124,8 @@
    1.26      ss as _ :: _ => forall (is_prover_supported ctxt) ss
    1.27    | _ => false
    1.28  
    1.29 -(* Secret feature: "provers =" and "type_sys =" can be left out. *)
    1.30 +(* "provers =" and "type_sys =" can be left out. The latter is a secret
    1.31 +   feature. *)
    1.32  fun check_and_repair_raw_param ctxt (name, value) =
    1.33    if is_known_raw_param name then
    1.34      (name, value)
    1.35 @@ -267,6 +270,7 @@
    1.36        else case lookup_string "type_sys" of
    1.37          "smart" => NONE
    1.38        | s => SOME (type_sys_from_string s)
    1.39 +    val sound = mode = Auto_Try orelse lookup_bool "sound"
    1.40      val relevance_thresholds = lookup_real_pair "relevance_thresholds"
    1.41      val max_relevant = lookup_option lookup_int "max_relevant"
    1.42      val max_mono_iters = lookup_int "max_mono_iters"
    1.43 @@ -285,9 +289,9 @@
    1.44       provers = provers, relevance_thresholds = relevance_thresholds,
    1.45       max_relevant = max_relevant, max_mono_iters = max_mono_iters,
    1.46       max_new_mono_instances = max_new_mono_instances, type_sys = type_sys,
    1.47 -     isar_proof = isar_proof, isar_shrink_factor = isar_shrink_factor,
    1.48 -     slicing = slicing, timeout = timeout, preplay_timeout = preplay_timeout,
    1.49 -     expect = expect}
    1.50 +     sound = sound, isar_proof = isar_proof,
    1.51 +     isar_shrink_factor = isar_shrink_factor, slicing = slicing,
    1.52 +     timeout = timeout, preplay_timeout = preplay_timeout, expect = expect}
    1.53    end
    1.54  
    1.55  fun get_params mode ctxt = extract_params mode (default_raw_params ctxt)