src/HOL/Tools/Sledgehammer/sledgehammer_minimize.ML
changeset 52031 9a9238342963
parent 51998 f732a674db1b
child 52555 6811291d1869
equal deleted inserted replaced
52030:9f6f0a89d16b 52031:9a9238342963
    63     val _ =
    63     val _ =
    64       print silent (fn () =>
    64       print silent (fn () =>
    65           "Testing " ^ n_facts (map fst facts) ^
    65           "Testing " ^ n_facts (map fst facts) ^
    66           (if verbose then
    66           (if verbose then
    67              case timeout of
    67              case timeout of
    68                SOME timeout => " (timeout: " ^ string_from_time timeout ^ ")"
    68                SOME timeout => " (timeout: " ^ string_of_time timeout ^ ")"
    69              | _ => ""
    69              | _ => ""
    70            else
    70            else
    71              "") ^ "...")
    71              "") ^ "...")
    72     val {goal, ...} = Proof.goal state
    72     val {goal, ...} = Proof.goal state
    73     val facts = facts |> maps (fn (n, ths) => map (pair n) ths)
    73     val facts = facts |> maps (fn (n, ths) => map (pair n) ths)
    94                 SOME failure => string_of_failure failure
    94                 SOME failure => string_of_failure failure
    95               | NONE =>
    95               | NONE =>
    96                 "Found proof" ^
    96                 "Found proof" ^
    97                  (if length used_facts = length facts then ""
    97                  (if length used_facts = length facts then ""
    98                   else " with " ^ n_facts used_facts) ^
    98                   else " with " ^ n_facts used_facts) ^
    99                  " (" ^ string_from_time run_time ^ ").");
    99                  " (" ^ string_of_time run_time ^ ").");
   100     result
   100     result
   101   end
   101   end
   102 
   102 
   103 (* minimalization of facts *)
   103 (* minimalization of facts *)
   104 
   104 
   349     val reserved = reserved_isar_keyword_table ()
   349     val reserved = reserved_isar_keyword_table ()
   350     val chained_ths = #facts (Proof.goal state)
   350     val chained_ths = #facts (Proof.goal state)
   351     val css = clasimpset_rule_table_of ctxt
   351     val css = clasimpset_rule_table_of ctxt
   352     val facts =
   352     val facts =
   353       refs |> maps (map (apsnd single)
   353       refs |> maps (map (apsnd single)
   354                     o fact_from_ref ctxt reserved chained_ths css)
   354                     o fact_of_ref ctxt reserved chained_ths css)
   355   in
   355   in
   356     case subgoal_count state of
   356     case subgoal_count state of
   357       0 => Output.urgent_message "No subgoal!"
   357       0 => Output.urgent_message "No subgoal!"
   358     | n => case provers of
   358     | n => case provers of
   359              [] => error "No prover is set."
   359              [] => error "No prover is set."