src/HOL/Tools/Sledgehammer/sledgehammer_isar.ML
changeset 48321 c552d7f1720b
parent 48319 340187063d84
child 48332 271a4a6af734
equal deleted inserted replaced
48320:891a24a48155 48321:c552d7f1720b
    84    ("blocking", "false"),
    84    ("blocking", "false"),
    85    ("type_enc", "smart"),
    85    ("type_enc", "smart"),
    86    ("strict", "false"),
    86    ("strict", "false"),
    87    ("lam_trans", "smart"),
    87    ("lam_trans", "smart"),
    88    ("uncurried_aliases", "smart"),
    88    ("uncurried_aliases", "smart"),
       
    89    ("learn", "true"),
    89    ("fact_filter", "smart"),
    90    ("fact_filter", "smart"),
    90    ("max_facts", "smart"),
    91    ("max_facts", "smart"),
    91    ("fact_thresholds", "0.45 0.85"),
    92    ("fact_thresholds", "0.45 0.85"),
    92    ("max_mono_iters", "smart"),
    93    ("max_mono_iters", "smart"),
    93    ("max_new_mono_instances", "smart"),
    94    ("max_new_mono_instances", "smart"),
   106    ("quiet", "verbose"),
   107    ("quiet", "verbose"),
   107    ("no_overlord", "overlord"),
   108    ("no_overlord", "overlord"),
   108    ("non_blocking", "blocking"),
   109    ("non_blocking", "blocking"),
   109    ("non_strict", "strict"),
   110    ("non_strict", "strict"),
   110    ("no_uncurried_aliases", "uncurried_aliases"),
   111    ("no_uncurried_aliases", "uncurried_aliases"),
       
   112    ("dont_learn", "learn"),
   111    ("no_isar_proof", "isar_proof"),
   113    ("no_isar_proof", "isar_proof"),
   112    ("dont_slice", "slice"),
   114    ("dont_slice", "slice"),
   113    ("dont_minimize", "minimize")]
   115    ("dont_minimize", "minimize")]
   114 
   116 
   115 val params_for_minimize =
   117 val params_for_minimize =
   294         "smart" => NONE
   296         "smart" => NONE
   295       | s => (type_enc_from_string Strict s; SOME s)
   297       | s => (type_enc_from_string Strict s; SOME s)
   296     val strict = mode = Auto_Try orelse lookup_bool "strict"
   298     val strict = mode = Auto_Try orelse lookup_bool "strict"
   297     val lam_trans = lookup_option lookup_string "lam_trans"
   299     val lam_trans = lookup_option lookup_string "lam_trans"
   298     val uncurried_aliases = lookup_option lookup_bool "uncurried_aliases"
   300     val uncurried_aliases = lookup_option lookup_bool "uncurried_aliases"
       
   301     val learn = lookup_bool "learn"
   299     val fact_filter = lookup_option lookup_string "fact_filter"
   302     val fact_filter = lookup_option lookup_string "fact_filter"
   300     val max_facts = lookup_option lookup_int "max_facts"
   303     val max_facts = lookup_option lookup_int "max_facts"
   301     val fact_thresholds = lookup_real_pair "fact_thresholds"
   304     val fact_thresholds = lookup_real_pair "fact_thresholds"
   302     val max_mono_iters = lookup_option lookup_int "max_mono_iters"
   305     val max_mono_iters = lookup_option lookup_int "max_mono_iters"
   303     val max_new_mono_instances =
   306     val max_new_mono_instances =
   315     val expect = lookup_string "expect"
   318     val expect = lookup_string "expect"
   316   in
   319   in
   317     {debug = debug, verbose = verbose, overlord = overlord, blocking = blocking,
   320     {debug = debug, verbose = verbose, overlord = overlord, blocking = blocking,
   318      provers = provers, type_enc = type_enc, strict = strict,
   321      provers = provers, type_enc = type_enc, strict = strict,
   319      lam_trans = lam_trans, uncurried_aliases = uncurried_aliases,
   322      lam_trans = lam_trans, uncurried_aliases = uncurried_aliases,
   320      fact_filter = fact_filter, max_facts = max_facts,
   323      learn = learn, fact_filter = fact_filter, max_facts = max_facts,
   321      fact_thresholds = fact_thresholds, max_mono_iters = max_mono_iters,
   324      fact_thresholds = fact_thresholds, max_mono_iters = max_mono_iters,
   322      max_new_mono_instances = max_new_mono_instances,  isar_proof = isar_proof,
   325      max_new_mono_instances = max_new_mono_instances,  isar_proof = isar_proof,
   323      isar_shrink_factor = isar_shrink_factor, slice = slice,
   326      isar_shrink_factor = isar_shrink_factor, slice = slice,
   324      minimize = minimize, timeout = timeout, preplay_timeout = preplay_timeout,
   327      minimize = minimize, timeout = timeout, preplay_timeout = preplay_timeout,
   325      expect = expect}
   328      expect = expect}
   369       end
   372       end
   370     else if subcommand = minN then
   373     else if subcommand = minN then
   371       run_minimize (get_params Minimize ctxt
   374       run_minimize (get_params Minimize ctxt
   372                                (("provers", [default_minimize_prover]) ::
   375                                (("provers", [default_minimize_prover]) ::
   373                                 override_params))
   376                                 override_params))
   374                    (the_default 1 opt_i) (#add fact_override) state
   377                    (K ()) (the_default 1 opt_i) (#add fact_override) state
   375     else if subcommand = messagesN then
   378     else if subcommand = messagesN then
   376       messages opt_i
   379       messages opt_i
   377     else if subcommand = supported_proversN then
   380     else if subcommand = supported_proversN then
   378       supported_provers ctxt
   381       supported_provers ctxt
   379     else if subcommand = kill_proversN then
   382     else if subcommand = kill_proversN then