src/HOL/Tools/Sledgehammer/sledgehammer_provers.ML
changeset 41211 1e2e16bc0077
parent 41209 91fab0d3553b
child 41220 4d11b0de7dd8
equal deleted inserted replaced
41210:15fbf30288e1 41211:1e2e16bc0077
   485             |> Output.urgent_message
   485             |> Output.urgent_message
   486           else
   486           else
   487             ()
   487             ()
   488         val birth = Timer.checkRealTimer timer
   488         val birth = Timer.checkRealTimer timer
   489         val _ =
   489         val _ =
   490           if debug then
   490           if debug then Output.urgent_message "Invoking SMT solver..." else ()
   491             Output.urgent_message "Invoking SMT solver..."
       
   492           else
       
   493             ()
       
   494         val (outcome, used_facts) =
   491         val (outcome, used_facts) =
   495           SMT_Solver.smt_filter remote iter_timeout state facts i
   492           SMT_Solver.smt_filter remote iter_timeout state facts i
   496           |> (fn {outcome, used_facts, ...} => (outcome, used_facts))
   493           |> (fn {outcome, used_facts, ...} => (outcome, used_facts))
   497           handle exn => if Exn.is_interrupt exn then
   494           handle exn => if Exn.is_interrupt exn then
   498                           reraise exn
   495                           reraise exn
   523                |> warning
   520                |> warning
   524              else
   521              else
   525                ();
   522                ();
   526              true (* kind of *))
   523              true (* kind of *))
   527           | SOME SMT_Failure.Out_Of_Memory => true
   524           | SOME SMT_Failure.Out_Of_Memory => true
   528           | SOME _ => true
   525           | SOME (SMT_Failure.Other_Failure _) => true
   529         val timeout = Time.- (timeout, Timer.checkRealTimer timer)
   526         val timeout = Time.- (timeout, Timer.checkRealTimer timer)
   530       in
   527       in
   531         if too_many_facts_perhaps andalso iter_num < !smt_max_iter andalso
   528         if too_many_facts_perhaps andalso iter_num < !smt_max_iter andalso
   532            num_facts > 0 andalso Time.> (timeout, Time.zeroTime) then
   529            num_facts > 0 andalso Time.> (timeout, Time.zeroTime) then
   533           let
   530           let