src/HOL/Tools/Sledgehammer/sledgehammer_mash.ML
changeset 51180 5cbfc644c261
parent 51177 e8c9755fd14e
child 51181 d0fa18638478
equal deleted inserted replaced
51179:0d5f8812856f 51180:5cbfc644c261
   903 fun attach_parents_to_facts facts =
   903 fun attach_parents_to_facts facts =
   904   let
   904   let
   905     fun do_facts _ [] = []
   905     fun do_facts _ [] = []
   906       | do_facts parents ((fact as (_, th)) :: facts) =
   906       | do_facts parents ((fact as (_, th)) :: facts) =
   907         (parents, fact) :: do_facts [nickname_of_thm th] facts
   907         (parents, fact) :: do_facts [nickname_of_thm th] facts
   908   in do_facts [] facts end
   908   in
       
   909     facts |> sort (crude_thm_ord o pairself snd)
       
   910           |> do_facts []
       
   911   end
   909 
   912 
   910 fun sendback sub = Active.sendback_markup (sledgehammerN ^ " " ^ sub)
   913 fun sendback sub = Active.sendback_markup (sledgehammerN ^ " " ^ sub)
   911 
   914 
   912 val commit_timeout = seconds 30.0
   915 val commit_timeout = seconds 30.0
   913 
   916 
   918     val timer = Timer.startRealTimer ()
   921     val timer = Timer.startRealTimer ()
   919     fun next_commit_time () =
   922     fun next_commit_time () =
   920       Time.+ (Timer.checkRealTimer timer, commit_timeout)
   923       Time.+ (Timer.checkRealTimer timer, commit_timeout)
   921     val {access_G, ...} = peek_state ctxt I
   924     val {access_G, ...} = peek_state ctxt I
   922     val is_in_access_G = is_fact_in_graph access_G snd
   925     val is_in_access_G = is_fact_in_graph access_G snd
   923     val facts = facts |> sort (crude_thm_ord o pairself snd)
       
   924     val no_new_facts = forall is_in_access_G facts
   926     val no_new_facts = forall is_in_access_G facts
   925   in
   927   in
   926     if no_new_facts andalso not run_prover then
   928     if no_new_facts andalso not run_prover then
   927       if auto_level < 2 then
   929       if auto_level < 2 then
   928         "No new " ^ (if run_prover then "automatic" else "Isar") ^
   930         "No new " ^ (if run_prover then "automatic" else "Isar") ^